ruby-on-rails - 当多个应用程序在 Ruby 中共享同一个数据库时如何管理迁移?

标签 ruby-on-rails ruby activerecord sinatra database-migration

我有一个 Rails 应用程序和一个 Sinatra 应用程序,共享同一个数据库。 Sinatra 应用程序使用 ActiveRecord。

我能否从每个应用程序中运行迁移,就好像它们在同一个应用程序中一样?这会导致任何问题吗?

Rails 应用程序中的 schema.rb 文件通过以下方式跟踪当前迁移

ActiveRecord::Schema.define(:version => 20121108154656) do

但是,Sinatra 应用如何知道数据库的当前版本?

Rails 3.2.2,Ruby 1.9.3。

最佳答案

schema_migrations 表中的版本列等于 ruby​​ 迁移文件示例前面的时间戳:20130322151805_create_customers.rb 因此,如果两个或更多应用程序正在为 schema_migrations 表做出贡献,那么如果 rails 可以回滚,则将不可能'找不到 down() 方法(因为它不会找到另一个应用程序中包含的迁移文件,即 db/migrate/...)

我目前的情况就是这样,我选择了一个主 ActiveRecord 应用程序来管理随着我们数据库的发展而进行的迁移和数据转换。请记住,交易的一部分也是让模型保持最新。这一直很耗时,因此我们正在考虑将数据库分解为业务领域,并提供 API (JSON) 来查询另一个应用程序的支持数据。这样每个应用程序都管理它的域并负责通过 API 公开数据。

问候。

关于ruby-on-rails - 当多个应用程序在 Ruby 中共享同一个数据库时如何管理迁移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13588642/

相关文章:

sql - 使用 codeigniter 和 ajax 检查数据库中是否存在用户名

ruby-on-rails - Rails 应用程序与运行 Ubuntu 的本地机器交互

javascript - 从javascript渲染部分,传递类变量的问题

ruby-on-rails - 如何使用停用 Webrick 的 SSL

ruby-on-rails - Rails 4.1 - LoadError : cannot load such file -- active_support/core_ext/string/encoding

ruby-on-rails - Rails - 获取 Rake 错误

PHP Activerecord - 连接同一张表

ruby-on-rails - PG::InvalidTextRepresentation:错误:整数的无效输入语法: "M"

ruby-on-rails - 如何从由分隔符 | 分隔的事件记录模型属性名称和值创建字符串?

不使用 Rails 的 Ruby ActiveRecord 无法保存