Ruby on rails 3 Rails模型关联但不同的数据库

Ruby on rails 3 Rails模型关联但不同的数据库,ruby-on-rails-3,activerecord,associations,postgresql-9.1,rails-postgresql,Ruby On Rails 3,Activerecord,Associations,Postgresql 9.1,Rails Postgresql,我正在构建一个使用mysql和postgres数据库的应用程序。我使用postgres是因为postgis,因为这个应用程序是基于位置的。Postgres只有一个数据库Places,而mysql包含所有其他数据库。在开发过程中,我在各种模型之间建立了一些关联,包括Place模型。但正如我所意识到的,由于数据库不同,关联的连接查询失败了 我的想法是只移动Postgres DB中的所有表。因此,我对MySQL没有任何特殊的需求 但从MySQL迁移到Postgres是我最后的选择。我想知道是否有任何方

我正在构建一个使用mysql和postgres数据库的应用程序。我使用postgres是因为postgis,因为这个应用程序是基于位置的。Postgres只有一个数据库
Places
,而mysql包含所有其他数据库。在开发过程中,我在各种模型之间建立了一些关联,包括
Place
模型。但正如我所意识到的,由于数据库不同,关联的连接查询失败了

我的想法是只移动Postgres DB中的所有表。因此,我对MySQL没有任何特殊的需求

但从MySQL迁移到Postgres是我最后的选择。我想知道是否有任何方法可以使位于不同数据库中的模型之间的关联无缝地工作


感谢您直接回答您的问题,您可以使用PostgreSQL外部数据包装器(FDW)功能引用其他数据库(包括MySQL)中的表

这就是说,规划者优化连接外部表的查询的能力受到了严重限制。虽然针对一个外部表的简单查询应该执行得很好,但如果您尝试使用复杂的声明性查询来发挥SQL的真正威力,那么它很容易比全部使用PostgreSQL慢几个数量级


我的建议是,如果可行的话,将其全部转移到PostgreSQL。如果这会浪费时间线太糟糕,你可能会考虑使用FDWS作为一个临时的“桥梁”来快速地运行和运行,并在你有机会或需要的时候移动这些表,以优化性能。

让你保持应用程序干净,这不是一个很好的做法来联系不同数据库的建议。事实上,我把所有的东西都搬到了博士后数据库。尽管存在一些小问题,例如Postgres Rails适配器无法识别“tsvector”,但与FDW相比,一切都很简单。