0

如何根据参数为特定会话指定数据库连接。例如,应用程序从 9 月到 9 月存在。在去年的生命周期之后将存储在旧数据库中,并为新的生命周期创建一个新数据库。该 api 将像这样工作:domain.com/2013/#/backbone_urls. 代替 2013 年,可以存储任何年份,具体取决于 Active 记录将创建与特定数据库的连接,因此该用户的所有查询都来自该数据库。这可能是一个难题,或者是错误的解决方案。

4

1 回答 1

1

您可以致电:

ActiveRecord::Base.establish_connection ...

任何时候你需要切换数据库,所以对于你的情况:

new_config = ActiveRecord::Base.configurations[Rails.env].clone
new_config['database'] = "new_db_#{Date.today.year}"
ActiveRecord::Base.establish_connection new_config

您可以执行这三行可以由调度程序执行。但我不知道具体怎么做,因为您需要一个在 Rails 应用程序“内部”运行的调度程序。

根据这是一个好还是错的解决方案,我认为——阅读不知道——它有利有弊,你将有几个小数据库而不是一个大数据库,所以你不能轻松访问所有数据,但是您不必处理大型数据库。

于 2013-09-02T15:03:34.107 回答