我有一个项目已经有很多编辑到postgresql数据库。
我想知道有没有办法构建一个新的db:rake文件,这样我就可以轻松地在新服务器上重建数据库了。无需手动编辑db:rake文件。
感谢
Ruby 1.9.3
CentOS 6.4
Ruby on Rails 3
postgresql 9.3
答案 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