我的问题与此有很大关系 我应该在回滚后删除迁移吗?
我的原始迁移文件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
我需要在其中添加一个盐列,所以我创建了迁移 20140804125449_add_salt_colum_to_users.rb
class AddSaltColumToUsers < ActiveRecord::Migration def change add_column :users, :salt, :string end end
但在开发过程中,我意识到盐柱不是必需的 并执行
rake db:migrate:down VERSION=20140731141350
现在我留下了一个未使用的 20140804125449_add_salt_colum_to_users.rb 迁移文件。
我的问题是,如果我不删除此迁移文件,此迁移的"关闭"状态保存到何处? 迁移文件显示add_column,因此如果我再次运行db:migrate ,它如何知道此特定文件已向下迁移?
db:migrate:down
和db:rollback
相似。 down
将数据库还原到指定版本,回滚 - 到以前的版本。要检查是否应用了迁移,Rails有一个名为"schema_migrations"的特定表,该表存储所有已应用迁移的时间戳,因此基本上当您运行db:migrate:down
rails时,它会还原迁移并从schema_migrations
中删除该行。因此,如果您不删除迁移文件 - rails 将在下一个db:migrate
中应用它