ruby-on-rails - 如何在非 Rails 应用程序中使用 ActiveRecord 创建新的 MySQL 数据库?

标签 ruby-on-rails ruby database activerecord

我正在构建一个使用 ActiveRecord 的非 Rails 纯 ruby​​ 应用程序。我想写一个 rake 文件,为它创建一个数据库和表。我试试下面的代码

namespace :db do
  task :create do
    conn = ActiveRecord::Base.connection
    create_db = "CREATE DATABASE foo_dev"
    conn.execute(create_db)
  end
end

但这给了我

ActiveRecord::ConnectionNotEstablished: ActiveRecord::ConnectionNotEstablished

错误。嗯,这很明显,因为我没有将 ActiveRecord 连接到任何数据库。

我该怎么办?


编辑:我想创建一个 MySQL 数据库。

最佳答案

建立连接,比如:

ActiveRecord::Base.establish_connection(
   :adapter   => 'sqlite3',
   :database  => './your_db.db'
)

对于 sqlite,如果数据库(文件)不存在,则会创建它。然后执行迁移以创建表。

基于之前的问题 Can ActiveRecord create tables outside of a migration?

关于ruby-on-rails - 如何在非 Rails 应用程序中使用 ActiveRecord 创建新的 MySQL 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14161229/

相关文章:

ruby-on-rails - 是否有 RESTful 方式为 habtm 配置路由?

ruby-on-rails - Rails 3 中的 Builder::XmlMarkup 发生了什么?

javascript - Ruby on Rails AJAX 提交表单错误

ruby - 使用 SQL 的 EventMachine 服务器和串口

ruby - RUBYOPT env 有哪些选项?

database - 流行的应用程序 Shazam 如何工作

ruby-on-rails - 无法在 Windows 10 中安装 tiny_tds

ruby-on-rails - 在 ActiveSupport::Concern 中访问包含类的 protected 常量

python - Django 会自动创建索引吗?

database - 我可以使用 golang 为 sqlite3 数据库中的每个新用户增加数值吗?