【发布时间】:2012-03-08 11:08:50
【问题描述】:
我们有大约 100 个数据库迁移文件。他们中的许多人进行了不可逆转的架构更改。还有一些后续迁移会更改或删除在早期迁移中创建的表。
我们直接从 schema.rb 文件创建新数据库,所以我们想知道是否有任何理由保留完整的迁移集?
我们将创建一个基于现有 schema.rb 的新迁移。
【问题讨论】:
标签: ruby-on-rails database-migration
我们有大约 100 个数据库迁移文件。他们中的许多人进行了不可逆转的架构更改。还有一些后续迁移会更改或删除在早期迁移中创建的表。
我们直接从 schema.rb 文件创建新数据库,所以我们想知道是否有任何理由保留完整的迁移集?
我们将创建一个基于现有 schema.rb 的新迁移。
【问题讨论】:
标签: ruby-on-rails database-migration
是的,您提出的建议被视为最佳做法。
我已经用我的旧应用多次这样做了。你会想要在某个地方备份你的迁移,直到你满意一切都很好,当然,这是应用程序维护的一个重要部分 - 如果你有很多旧的迁移,可能需要很长时间才能完成 db:reset或运行一个新的开发环境。
【讨论】:
db:reset 将永远占用的论点是错误的,rake db:reset 和rake db:setup 已经使用schema.rb(或structure.sql)。也就是说:去除旧的杂物确实有意义:)
我只使用rake db:setup 和rake db:reset(从不使用rake db:migrate)在生产服务器或新开发机器上安装新数据库。这些命令已经使用schema.rb 或structure.sql 重新创建数据库。
也就是说,复制schema.rb 真的很容易,将其用作新起点并删除所有旧迁移。
我更喜欢出于历史目的保留我的迁移,但这只是个人喜好问题。
【讨论】: