我有一个rails应用程序,用于连接到亚马逊上托管的生产从属数据库。我想创建一个第二个数据库,它有一个完全不同的模式,只是保存在我的本地机器上。原因是从我们使用的第三方导入数据,并且更好地组织并能够比访问它们的api更快地访问它。我的问题是如何设置第二个数据库?仅仅创建一个新的rails应用程序会更好吗?如果我在database.yml中设置新环境和新数据库,我该如何为该数据库创建自定义模式等?
谢谢!
答案 0 :(得分:4)
是否使用不同的Rails应用程序取决于两个应用程序之间存在多少功能重叠,如果有两个应用程序。
但是,如果要从同一个Rails应用程序中处理两个单独的数据库,那么您可以处理来自一个数据库的条目以在另一个数据库中进行更改,这非常简单。如果您搜索establish_connection,有很多示例,例如:https://web.archive.org/web/20160320192534/http://blog.nistu.de/2012/03/25/multi-database-setup-with-rails-and-rspec
基本上,您的应用程序有一个主要的默认数据库,然后通过在database.yml中以不同的名称定义第二个数据库的配置来设置一个或多个模型以使用不同的数据库。然后,在模型定义中输入引用不同数据库配置的establish_connection调用。
在此处有一些用于管理多数据库配置中的迁移的选项:Using Rails Migration on different database than standard "production" or "development"