在我们的程序中,每个客户都有自己的数据库.我们通过邮箱给他们发送一个链接,将他们连接到他们的数据库.该链接包含一个GUID,该GUID让程序知道要连接到哪个数据库.
如何以动态和编程方式将ActiveRecord连接到正确的数据库?
在我们的程序中,每个客户都有自己的数据库.我们通过邮箱给他们发送一个链接,将他们连接到他们的数据库.该链接包含一个GUID,该GUID让程序知道要连接到哪个数据库.
如何以动态和编程方式将ActiveRecord连接到正确的数据库?
您还可以轻松完成这项工作,而无需硬编码任何内容,并自动运行迁移:
customer = CustomerModel.find(id)
spec = CustomerModel.configurations[RAILS_ENV]
new_spec = spec.clone
new_spec["database"] = customer.database_name
ActiveRecord::Base.establish_connection(new_spec)
ActiveRecord::Migrator.migrate("db/migrate_data/", nil)
我发现,在特定型号上重新建立旧连接很有用:
CustomerModel.establish_connection(spec)