在运行时以编程方式创建MySQL数据库

时间:2010-11-04 02:22:50

标签: mysql ruby-on-rails

Rails / AR中是否有办法在运行时创建新的mysql数据库?

2 个答案:

答案 0 :(得分:2)

我建议的是准备只能由指定用户读取的独立脚本,并使用带有{name}作为参数的system命令从rails执行

答案 1 :(得分:1)

快速而肮脏的答案是:

  1. 确保您的应用程序连接的MySQL用户可以创建数据库。

  2. 使用SQL语句创建数据库:

    ActiveRecord :: Base.connection.execute('CREATE DATABASE IF NOT NOT EXISTS new_database');

  3. 为简单起见,我建议不要使用ActiveRecord。 AR实际上是为预先配置的数据库而设计的,即使你可以创建数据库,你真正遇到的问题就是尝试连接并动态使用这些数据库。

    你可能最好使用Brian Lopez的mysql2 gem(除了你应用程序主数据库的AR):

    https://github.com/brianmario/mysql2

    除了非常快速和现代之外,它的API比原始的mysql库(这是AR在引擎盖下使用,包括connection.execute)更容易使用。

相关问题