可以Rails的scheme.rb自动重建支架吗?

时间:2012-05-18 21:48:29

标签: ruby-on-rails-3 ruby-on-rails-3.2

使用schema.rb,我认为我们实际上可以将旧的Rails 3.0项目转换为Rails 3.2.3项目,使用此schema.rb文件重建数据库。

但是如果我在3.0项目之前只使用脚手架来创建所有RESTful资源,那么这个新的Rails 3.2.3项目是否也需要再次生成脚手架呢?如果是这种情况,使用scheme.rb会不会有用吗?因为我们将继续创建所有迁移文件并执行rake,我们可以在此过程中生成额外的创建索引迁移。

还是有更好的方法吗?比如可以自动重建旧脚手架和旧数据库表和索引的方法?可以使用或丢弃旧数据库,因此从一开始就可以更新地启动sqlite数据库。

2 个答案:

答案 0 :(得分:1)

您是否有理由要废弃现有项目/数据库以构建新项目/数据库?通常很容易在Gemfile中更新rails版本,运行bundle install,然后修复任何中断的东西(如果你使用的是默认的脚手架,那就不会太多了)。现有的数据库可以正常使用3.0或3.2,以及所有旧的脚手架文件。

您应该查看this railscast以了解如何从rails 3.0转到3.1,这样您就可以看到升级的基础知识。从3.1升级到3.2甚至更容易。

要回答您的原始问题,没有直接的方法来使用schema.rb重新生成支架。当你开始构建一个模型/控制器时,脚手架只是一个帮助你的起点,重新创建它们通常没有意义,因为无论如何你通常会在之后大量修改它们。

答案 1 :(得分:0)

您可以使用此“反向支架”脚本:

  

https://github.com/ahe/reverse_scaffold

它将在app / views文件夹中生成所需的html.erbb文件。

在自述文件页面上已经很好地解释了。

并且,它已针对Rails 3.2进行了更新