是否可以使用 Rails 根据自上次迁移以来在 Rails 之外的数据库中发生的更改自动生成迁移?
我知道运行 db:migrate 将更改 schema.rb 以匹配数据库中的内容....(至少如果不进行任何迁移但我确实以某种方式手动更改了数据库)。我想知道的是,是否有一种方法可以作为同一机制或流程的一部分,让它从这些更改中创建迁移。
非常感谢!
是否可以使用 Rails 根据自上次迁移以来在 Rails 之外的数据库中发生的更改自动生成迁移?
我知道运行 db:migrate 将更改 schema.rb 以匹配数据库中的内容....(至少如果不进行任何迁移但我确实以某种方式手动更改了数据库)。我想知道的是,是否有一种方法可以作为同一机制或流程的一部分,让它从这些更改中创建迁移。
非常感谢!
我不认为这是 Rails 会做或试图解决的事情。Rails 希望您通过迁移显式管理这些更改,以便您的数据库受到控制(和源代码控制)。
看看这颗宝石是不是你想要的。- https://github.com/pjhyett/auto_migrations
它可能不适用于 Rails 3。我认为由于您直接编辑数据库,因此您必须运行rake db:schema:dump
以更新 schema.rb 文件。
如果您想捕获不同数据库更改点之间的增量,请查看此 SO 答案: 如何从 MYSQL 数据库实例自动生成 Rails 迁移类?,沿途重复他的步骤。