我应该在回滚后删除迁移吗?

Ste*_*Woo 4 ruby ruby-on-rails rails-migrations

我对红宝石和铁轨都很陌生,而且我只是围绕着迁移.

我的问题是在回滚后删除迁移的最佳做法或时机是什么.到目前为止,我所看到的是回滚后是否删除迁移是一个问题,但在团队中工作时删除迁移是否有任何重大影响,离开迁移文件有什么好处而不是删除它?

在我的情况下最有意义的是什么?

我有我原来的迁移文件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
Run Code Online (Sandbox Code Playgroud)

我需要添加一个salt列,所以我创建了迁移20140804125449_add_salt_colum_to_users.rb

class AddSaltColumToUsers < ActiveRecord::Migration
  def change
    add_column :users, :salt, :string
  end
end
Run Code Online (Sandbox Code Playgroud)

但在开发过程中,我意识到柱不是必需的并且已经完成

rake db:migrate:down VERSION=20140731141350
Run Code Online (Sandbox Code Playgroud)

现在我留下了一个未使用的20140804125449_add_salt_colum_to_users.rb迁移文件.

删除还是不?

Bro*_*tse 7

您永远不应该更改旧的迁移.如果您意识到不需要给定列,请编写新的迁移以将其删除.

这样做的原因是您可以在任何开发点恢复数据库架构.如果您在团队中工作,那么您删除迁移的事实不会改变您的队友的模式.更重要的是,他们现在没有迁移回复!

  • 对我来说,唯一的例外是你没有推动迁移 (5认同)