【问题标题】:Rails External MySQL Database - Without MigrationsRails 外部 MySQL 数据库 - 无需迁移
【发布时间】:2013-01-29 23:03:47
【问题描述】:

我正在开发一个 Rails 应用程序,作为更大解决方案的一部分。该解决方案的核心将是一个 mySQL 数据库,将来还会有其他 Web 服务和连接器。

我们计划首先根据 Rails 约定对数据、列名、关系进行建模。但我希望我将使用“建立连接”来做一个表到表映射到实际数据库,然后不在 rails 本身使用任何迁移。

所以我的问题是,将 Rails 应用程序附加到外部数据源以对数据模型进行持续更改的最佳做法是什么。

我是不是应该简单地用新的字段和关系手动更新model.rb文件,然后允许rails通过建立连接到每个表?

是否有任何工具可以同步已更改的字段和/或数据模型中可能已更改的关系?其他开发人员之一熟悉 Symfony,并表示他们使用过类似的东西。我找到的用于对数据库进行逆向工程的 gem 要么已经过时,要么似乎只删除了 .rb 文件,没有考虑字段或关系。

谢谢!

【问题讨论】:

标签: ruby-on-rails


【解决方案1】:

是否有任何工具可以同步更改的字段和/或 数据模型中可能发生变化的关系?

根据设计,Ruby on Rail 的迁移旨在在对 RoR 模型进行更改时增量更新数据库。

如果我对您的理解正确,您有兴趣记录相反方向的变化;如果您愿意,可以进行反迁移;)。如果是这样,那么迁移不是一个很好的匹配。

根据您的数据库更改的记录方式(您提到此 web 应用程序是大型机器中的一个齿轮),我建议您一起放弃迁移,因为这些迁移旨在对数据库进行更改。话虽如此,我还是强烈建议您使用迁移来记录您的数据库更改。

回到你的问题。通过简单地运行rake db:migrate(没有任何迁移)我可能会在这个问题上出错,只需更新db\schema.rb 文件。 schema.rb 将始终反映调用时的最新数据库结构。不幸的是,这就是魔法停止的地方。如果影响模型的属性名称,则需要更新 Rails webapp 以反映任何 DB 元数据更改。

我是否应该简单地使用新字段更新 model.rb 文件? 手动建立关系,然后允许 rails 连接到每个表 通过建立?

是的,恕我直言:)

HTH,祝你好运。

【讨论】:

  • 谢谢,是的,这有帮助,我只是想确保我没有遗漏任何内容。
猜你喜欢
  • 2012-11-16
  • 1970-01-01
  • 2015-01-11
  • 2020-10-30
  • 2016-08-23
  • 2020-10-09
  • 2012-04-11
  • 2014-04-10
  • 1970-01-01
相关资源
最近更新 更多