ruby-on-rails - 在 Rails 应用程序中删除旧的迁移文件

标签 ruby-on-rails rails-migrations

如果架构稳定,是否允许删除(或归档)Rails 应用程序中的旧迁移文件?

我的迁移很多,我怀疑那里可能存在一些问题,因为我偶尔会在 Heroku 上迁移数据库时遇到问题。

最佳答案

您不需要在 Rails 应用程序中保留旧的迁移文件,因为您的数据库模式应该在 schema.rb 或可用于重新生成模式的等效 SQL 文件中捕获。

迁移不是您的数据库架构的权威来源。该角色属于 db/schema.rb 或 Active Record 通过检查数据库生成的 SQL 文件。它们不是为编辑而设计的,它们只是代表数据库的当前状态。

无需(而且容易出错)通过重放整个迁移历史来部署应用程序的新实例。将当前模式的描述加载到数据库中会更加简单和快捷,该描述位于 schema.rb 或 SQL 文件中。
该文件应进行版本控制并保存在源代码管理中。

要设置自动生成 schema.rb,请通过 config.active_record.schema_format 修改 config/application.rb设置,可以是 :ruby 或 :sql。
如果选择了 :ruby,则模式存储在 db/schema.rb 中。
如果选择 :sql,则模式将以原生 SQL 格式转储
你的数据库。

关于ruby-on-rails - 在 Rails 应用程序中删除旧的迁移文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20119391/

相关文章:

ruby-on-rails - Ruby on Rails : models, 迁移和概览

sql - rails : Custom function in where block

ruby-on-rails - 角色未添加到数据库中的用户

ruby-on-rails - 如何让 faker gem 创建英文句子和段落

mysql - Rails 迁移 : update_all with dynamic code is possible?

ruby-on-rails - 如何在rails中回滚单个迁移文件?

ruby-on-rails - 将默认值添加到另一列的迁移

ruby-on-rails - 带太阳黑子的工头 gem 无法启动

ruby-on-rails - 在 ruby​​ on Rails 上创建身份验证 API

ruby-on-rails - 如何生成迁移以使引用多态