Rails:在同一个应用程序中同时使用mysql和postgres?

ADA*_*DAM 4 ruby mysql postgresql ruby-on-rails

为什么你会问?因为我已经在mysql上构建了应用程序,并且只需要为我的应用程序的GIS组件开始使用postgres.最终我将完全迁移到postgres,但同时想知道这是否可行

Jim*_*nke 10

例如,如果你,在你的database.yml中有这样的东西(不记得正确的属性,但我认为你明白了):

postgres:
    adapter: postgres
    database: gis

mysql:
    adapter: mysql
    database: app
Run Code Online (Sandbox Code Playgroud)

然后,你可以添加

establish_connection :postgres 
Run Code Online (Sandbox Code Playgroud)

在应该使用Postgres数据库的模型中.当然,创建一个抽象类并让所有模型使用那个模型可能更容易,因为那样更干燥.

class PostgresRecord::Base < ActiveRecord::Base
  self.abstract_class = true
  establish_connection :postgres
end
Run Code Online (Sandbox Code Playgroud)

或者,由于您计划最终迁移到Postgres,您可能应该反过来,使Postgres数据库默认并更改MySQL的连接.