更改现有迁移或生成新迁移?

Change existing migration or generate new one?

我的项目有 100 多个迁移,主要是因为引入、删除然后又引入回来。即我有很多迁移对我来说看起来没用。 此外,rails 在我 运行 迁移时开始添加弃用警告:

DEPRECATION WARNING: #timestamps was called without specifying an option for null. In Rails 5, this behavior will change to null: false. You should manually specify null: true to prevent the behavior of your existing migrations from changing.

我认为要绕过上述警告,我需要编辑迁移文件。编写新的新迁移(基于我当前的架构)是不是一个坏主意,因为我的迁移历史已经搞砸了? 你可能会说迁移记录了历史上发生的事情,但我不是已经有了 git 吗?

对于长期积极开发应用程序的 Rails 程序员来说,这是一个常见问题。我的小组遵循的做法是,当我们确信我们处于永远不会回滚到迁移 #X 的时刻时,我们将回滚我们打算保留的最近的迁移,将生成的 db/schema.rb 复制为我们的new "initial migration" 然后只保留初始后的较新的。这将使您免受那些弃用警告的影响,并且也会减轻您的代码库和存储库的负担。

希望对您有所帮助。