Ruby on rails 我们有很多数据库迁移文件-我们应该保留它们吗?

Ruby on rails 我们有很多数据库迁移文件-我们应该保留它们吗?,ruby-on-rails,database-migration,Ruby On Rails,Database Migration,我们有大约100个数据库迁移文件。他们中的许多人做出了不可逆转的模式更改。还有一些更晚的迁移会更改或删除在早期迁移中创建的表 我们直接从schema.rb文件创建新数据库,因此我们想知道是否有任何理由保留完整的迁移集 我们将基于现有的schema.rb创建一个新的迁移。是的,您的建议被认为是最佳实践 我已经用我的旧应用程序做了好几次了。您可能希望在某个地方备份迁移,直到您满意一切正常为止。当然,这是应用程序维护的一个重要部分-如果您有很多旧迁移,执行db:reset或运行新的开发环境可能需要很长

我们有大约100个数据库迁移文件。他们中的许多人做出了不可逆转的模式更改。还有一些更晚的迁移会更改或删除在早期迁移中创建的表

我们直接从schema.rb文件创建新数据库,因此我们想知道是否有任何理由保留完整的迁移集


我们将基于现有的schema.rb创建一个新的迁移。

是的,您的建议被认为是最佳实践


我已经用我的旧应用程序做了好几次了。您可能希望在某个地方备份迁移,直到您满意一切正常为止。当然,这是应用程序维护的一个重要部分-如果您有很多旧迁移,执行
db:reset
或运行新的开发环境可能需要很长时间。

我专门使用
rake db:setup
rake db:reset
(从不
rake db:migrate
)在生产服务器或新的开发机器上安装新数据库。这些命令已经使用
schema.rb
structure.sql
来重新创建数据库

这就是说,复制
schema.rb
,将其作为新的起点并删除所有旧的迁移非常容易


我更愿意将我的迁移保留为历史目的,但这是一个品味问题。

我们已经尝试找到了讨论过的地方-您知道有哪些网站或资源详细介绍了rails/数据库最佳实践吗?@roo我见过一些“最佳实践”网站,但似乎没有一个网站专门解决这个问题。我在当地的一次黑客竞技场上与一些红宝石爱好者讨论后,将此作为最佳实践;几乎不科学,但肯定是同行评议的。:)如果我将此案例视为最佳实践,我会说,将任何代码库(包括迁移)与任何人都无法使用的历史混为一谈是没有意义的。如果有人想为自己的教育阅读数据库历史记录,Git将为您提供帮助;没有理由在工作部门。是的,我们也得出了同样的结论。很高兴知道其他人也有过同样的对话:)你有没有找到任何关于这个问题的“最佳实践”TUT?关于
db:reset
将永远花费的论点是错误的,
rake db:reset
rake db:setup
已经使用了
schema.rb
(或
structure.sql
)。也就是说:清除旧的杂乱确实有意义:)