从现有数据库构建db:rake任务

时间:2014-06-09 15:29:47

标签: ruby-on-rails ruby postgresql dbmigrate

我有一个项目已经有很多编辑到postgresql数据库。

我想知道有没有办法构建一个新的db:rake文件,这样我就可以轻松地在新服务器上重建数据库了。无需手动编辑db:rake文件。

感谢

Ruby 1.9.3
CentOS 6.4
Ruby on Rails 3
postgresql 9.3

1 个答案:

答案 0 :(得分:0)

为清楚起见,我假设您在提及 db:rake files 时指的是迁移文件。

在Rails中,您不希望使用迁移文件重建数据库。它们很快就会过时,引用不再存在的东西等。相反,最好使用schema.rb文件重新创建数据库。 an answer I wrote a while back触及了这一点。简而言之,schema.rb文件代表您的数据库表结构;快照,如果你愿意的话。请注意,它不包含数据,只包含表格结构。

在您的方案中,为了创建或确保您的schema.rb是最新的,您只需要转储架构,如下所示:

rake db:schema:dump

这会重新生成schema.rb文件。然后,要在另一个环境中从此文件重建数据库,只需重新加载架构,如下所示:

rake db:schema:load

如上所述,schema.rb不包含表中的任何数据,它仅代表结构。如果要使用初始值/默认值预加载数据库,则需要使用seed.rb文件。只需编写.create语句,然后运行即可:

rake db:seed