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

Ruby on rails 从现有数据库构建db:rake任务,ruby-on-rails,ruby,postgresql,dbmigrate,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 为清楚起见,我假设您在提到db:rake文件时指的是迁移文件 在Rails中,您不希望使用迁移文件重建数据库。它们可能很快就会过时,指的是不再存在的东西等。相反,最好使用schema.rb文件重新创

我有一个项目对postgresql数据库进行了大量编辑

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

谢谢

Ruby 1.9.3
CentOS 6.4
Ruby on Rails 3
postgresql 9.3

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

在Rails中,您不希望使用迁移文件重建数据库。它们可能很快就会过时,指的是不再存在的东西等。相反,最好使用
schema.rb
文件重新创建数据库。这是涉及到的。简而言之,
schema.rb
文件代表您的数据库表结构;一个快照,如果你愿意的话。请注意,它不包含数据,只包含表结构

在您的场景中,为了创建或确保您的
schema.rb
是最新的,您只需转储模式,如下所示:

rake db:schema:dump
rake db:schema:load
这将重新生成
schema.rb
文件。然后,要在另一个环境中从此文件重建数据库,只需重新加载模式,如下所示:

rake db:schema:dump
rake db:schema:load
如上所述,
schema.rb
不包含表中的任何数据,它只表示结构。如果要使用初始/默认值预加载数据库,则需要使用
seed.rb
文件。只需编写
。创建
语句,并按如下方式运行:

rake db:seed