Art*_*dad 7 mysql database activerecord connection-pooling ruby-on-rails
我正在构建一个SaaS,用户可以在其中创建自己的网站(如Wix或SquareSpace).这就是幕后发生的事情:
要创建新数据库并建立连接,请执行以下操作:
ActiveRecord::Base.connection.execute("CREATE DATABASE #{name}")
ActiveRecord::Base.establish_connection(<dynamic db data>)
Run Code Online (Sandbox Code Playgroud)
然后我通过执行以下操作在db中执行sql代码:
sql = File.read(sql_file.sql)
statements = sql.split(/;$/)
statements.pop
ActiveRecord::Base.transaction do
statements.each do |statement|
connection.execute(statement)
end
end
Run Code Online (Sandbox Code Playgroud)
然后我重新建立与主db的连接:
ActiveRecord::Base.establish_connection :production
Run Code Online (Sandbox Code Playgroud)
如何在没有数据库冲突的情况下同时处理许多用户创建网站?
换句话说,如何establish_connection并行使用多个数据库?
注意:它与通过database.yml连接到多个数据库不同.这里的目标是同时连接和断开多个用户对动态创建的数据库的连接.
| 归档时间: |
|
| 查看次数: |
615 次 |
| 最近记录: |