更改现有迁移或生成新迁移?
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" 然后只保留初始后的较新的。这将使您免受那些弃用警告的影响,并且也会减轻您的代码库和存储库的负担。
希望对您有所帮助。
我的项目有 100 多个迁移,主要是因为引入、删除然后又引入回来。即我有很多迁移对我来说看起来没用。 此外,rails 在我 运行 迁移时开始添加弃用警告:
DEPRECATION WARNING:
#timestamps
was called without specifying an option fornull
. In Rails 5, this behavior will change tonull: false
. You should manually specifynull: true
to prevent the behavior of your existing migrations from changing.
我认为要绕过上述警告,我需要编辑迁移文件。编写新的新迁移(基于我当前的架构)是不是一个坏主意,因为我的迁移历史已经搞砸了? 你可能会说迁移记录了历史上发生的事情,但我不是已经有了 git 吗?
对于长期积极开发应用程序的 Rails 程序员来说,这是一个常见问题。我的小组遵循的做法是,当我们确信我们处于永远不会回滚到迁移 #X 的时刻时,我们将回滚我们打算保留的最近的迁移,将生成的 db/schema.rb
复制为我们的new "initial migration" 然后只保留初始后的较新的。这将使您免受那些弃用警告的影响,并且也会减轻您的代码库和存储库的负担。
希望对您有所帮助。