Rails / AR中是否有办法在运行时创建新的mysql数据库?
答案 0 :(得分:2)
我建议的是准备只能由指定用户读取的独立脚本,并使用带有{name}作为参数的system
命令从rails执行
答案 1 :(得分:1)
快速而肮脏的答案是:
确保您的应用程序连接的MySQL用户可以创建数据库。
使用SQL语句创建数据库:
ActiveRecord :: Base.connection.execute('CREATE DATABASE IF NOT NOT EXISTS new_database');
为简单起见,我建议不要使用ActiveRecord。 AR实际上是为预先配置的数据库而设计的,即使你可以创建数据库,你真正遇到的问题就是尝试连接并动态使用这些数据库。
你可能最好使用Brian Lopez的mysql2 gem(除了你应用程序主数据库的AR):
https://github.com/brianmario/mysql2
除了非常快速和现代之外,它的API比原始的mysql库(这是AR在引擎盖下使用,包括connection.execute)更容易使用。