在Rails
中执行每个用户数据库连接的最佳方式是什么?我认识到这是一个糟糕的Rails设计实践,但我们正在逐步取代现有的每个用户使用一个数据库的Web应用程序。完全重新设计/重写是不可行的。在Rails中执行每个用户数据库连接的最佳方法
6
A
回答
10
在你的应用程序控制器中放置这样的东西。我正在使用子域加“_clientdb”来选择数据库的名称。我有所有的数据库使用相同的用户名和密码,所以我可以从数据库配置文件中获取。
希望这会有所帮助!
class ApplicationController < ActionController::Base
before_filter :hijack_db
def hijack_db
db_name = request.subdomains.first + "_clientdb"
# lets manually connect to the proper db
ActiveRecord::Base.establish_connection(
:adapter => ActiveRecord::Base.configurations[ENV["RAILS_ENV"]]['adapter'],
:host => ActiveRecord::Base.configurations[ENV["RAILS_ENV"]]['host'],
:username => ActiveRecord::Base.configurations[ENV["RAILS_ENV"]]['username'],
:password => ActiveRecord::Base.configurations[ENV["RAILS_ENV"]]['password'],
:database => db_name
)
end
end
1
看看ActiveRecord::Base.establish_connection。这就是你如何连接到不同的数据库服务器。我不能提供更多帮助,因为我不知道如何识别用户或将其映射到它的数据库,但我想主数据库将拥有该信息(并且连接信息应该位于database.yml文件中)。
祝你好运。
相关问题
- 1. 使用pdo连接到两个数据库的最佳方法
- 2. 在php中连接数据库的最佳方法是什么?
- 3. 在Laravel中连接多个数据库的最佳方式
- 4. PHP - 有多个连接时连接数据库的最佳方法
- 5. 在c#中连接数据库的最佳方式是什么?
- 6. 在php中实现数据库连接的最佳方式
- 7. 在MonoTouch中连接远程数据库的最佳做法
- 8. 执行MySQL大型数据库导出的最佳方法
- 9. 如何在Rails中的数据库连接上执行查询?
- 10. 将数据网格的行连接到EF的最佳方法
- 11. 数据库连接的最佳途径?
- 12. 在postgres中,使用连接表执行AND的最佳方法是什么?
- 13. 在PHP连接MySQL数据库的最佳方式
- 14. 在类之间共享数据库连接的最佳方式
- 15. Rails - 基于用户凭据的每个请求的数据库连接
- 16. Sqlite数据库连接最佳实践
- 17. 最佳数据库连接池大小
- 18. 数据库连接最佳实践
- 19. Android数据库连接最佳实践
- 20. 在C#中处理多个数据库连接的最佳方式是什么
- 21. Rails中的多个数据库连接
- 22. 在ruby中执行soap客户端请求的最佳方法
- 23. 在Android上执行单独数据安装的最佳方法
- 24. 每秒发送数据时处理数据连接中断的最佳做法
- 25. 在ASP.Net中分页数据库数据的最佳方法
- 26. 将Android应用连接到远程数据库的最佳方法?
- 27. 插入数据库的最佳方法?
- 28. 创建数据库连接的最佳方式
- 29. 连接android和oracle数据库的最佳方式是什么?
- 30. 高流量连接的最佳数据库连接字符串?