MySQL数据库在运行时的编程创建

MySQL数据库在运行时的编程创建,mysql,ruby-on-rails,Mysql,Ruby On Rails,Rails/AR中有没有办法在运行时创建一个新的mysql数据库?我建议准备一个仅由指定用户可读的独立脚本,并使用系统命令从Rails执行它,db name为parameter快速而肮脏的答案是: 确保您的应用程序正在连接的MySQL用户可以创建数据库 使用SQL语句创建数据库: ActiveRecord::Base.connection.execute('CREATE DATABASE IF NOT EXISTS new_DATABASE') 为了简单起见,我建议不要使用ActiveRecor

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

我建议准备一个仅由指定用户可读的独立脚本,并使用
系统
命令从Rails执行它,db name为parameter

快速而肮脏的答案是:

  • 确保您的应用程序正在连接的MySQL用户可以创建数据库

  • 使用SQL语句创建数据库:

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

  • 为了简单起见,我建议不要使用ActiveRecord。AR实际上是为预配置数据库而设计的,即使您可以在创建数据库时遇到问题,但在尝试动态连接和使用这些数据库时也是如此

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


    除了非常快速和现代化之外,它的API比原始的mysql库(AR在后台使用,包括connection.execute)更易于使用。

    您的意思是创建数据库还是创建数据库,如,要创建应用程序与主数据库一起使用的其他数据库?我希望能够创建多个数据库,每个客户一个。应用程序将足够智能,能够根据用户身份验证连接到正确的数据库。