我的问题与这个问题非常相关Should I delete migration after rollback。
我有原始的迁移文件 20140731141350_create_users.rb
class CreateUsers < ActiveRecord::Migration def change create_table :users do |t| t.string :email t.string :password t.timestamps end end end
我需要添加 salt 列,因此我创建了迁移 20140804125449_add_salt_colum_to_users.rb
class AddSaltColumToUsers < ActiveRecord::Migration def change add_column :users, :salt, :string end end
但在开发过程中,我意识到 salt 列并不是必需的 并执行
rake db:migrate:down VERSION=20140731141350
现在我没有使用过 20140804125449_add_salt_colum_to_users.rb 迁移文件。
我的问题是,如果我不删除此迁移文件,此迁移的“关闭”状态保存在哪里?迁移文件说add_column所以如果我再次运行db:migrate,它将如何知道这个特定文件已被迁移下来?
答案 0 :(得分:1)
db:migrate:down
和db:rollback
相似。 down
将数据库恢复为指定版本,回滚到之前的版本。要检查是否已应用迁移Rails有一个名为“schema_migrations”的特定表,用于存储所有应用迁移的时间戳,因此基本上当您运行db:migrate:down
时,rails将恢复迁移并从{中删除行{1}}。因此,如果您不删除迁移文件,rails将在下一个schema_migrations