迁移状态保存在哪里?

时间:2016-03-04 00:06:47

标签: ruby-on-rails activerecord

我的问题与这个问题非常相关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,它将如何知道这个特定文件已被迁移下来?

1 个答案:

答案 0 :(得分:1)

db:migrate:downdb:rollback相似。 down将数据库恢复为指定版本,回滚到之前的版本。要检查是否已应用迁移Rails有一个名为“schema_migrations”的特定表,用于存储所有应用迁移的时间戳,因此基本上当您运行db:migrate:down时,rails将恢复迁移并从{中删除行{1}}。因此,如果您不删除迁移文件,rails将在下一个schema_migrations

中应用它