我目前正在使用在我意识到Rails存在之前设计的数据库开发Rails应用程序.
我目前已经创建了一些迁移,以向现有表添加一些新表和新列.
我想让迁移重新创建完整的数据库.
我应该遵循哪些步骤?
我应该手动创建所有迁移吗?
编辑:我感兴趣的是不在数据库内容中的数据库模式
当我们将PHP应用程序移植到rails时,我们遇到了这个问题.我们所做的与tomtoday的建议类似.首先,我们将rails配置指向当前数据库.然后我们做了一个rake db:schema:dump并将db/schema.rb文件复制到db/schema_base.rb之类的东西.然后,您进行第一次迁移加载该架构.例如:
class CreateTables < ActiveRecord::Migration def self.up `cp #{Rails.root}/db/schema_base.rb #{Rails.root}/db/schema.rb` Rake::Task['db:schema:load'].invoke end def self.down end end
只需强迫这是第一次迁移,你就会开始.然后,您开始编写迁移以将数据库转换为更符合Rails方式.我们编写了迁移以正确重命名id列,外键关系,表名等.
请记住,架构转储不支持外键约束和触发器(如果使用它们).