ruby on rails从sqlite3转换为mysql2 gem

时间:2011-03-20 04:52:59

标签: ruby-on-rails-3 rubygems

我的安装

  • Ubuntu 10.10
  • Rails 3
  • gem = sqlite3和sqlite3-ruby
  • gem = mysql2

现在我使用

创建了一个名为mytestapp的应用程序
rails new mytestapp

与rails 3一样,它默认使用sqlite3数据库。现在我想更改mytestapp的数据库,以便它使用MySql数据库。

我在这里做了更改

  • 的database.yml
  • gemfile - 我添加了 gem'mysql2'并删除了 gem'sqlite3'

我的新database.yml看起来像这样

development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: mytestapp_development
  pool: 5
  username: mytestapp
  password: hacked
  socket: /var/run/mysqld/mysqld.sock

现在我转到 localhost:3000 并点击关于应用程序的开发环境 我收到以下错误

的ActiveRecord :: ConnectionNotEstablished

MySql用户 mytestapp 拥有数据库的适当权限。

当我使用以下

创建新的rails应用程序时
rails new anotherapp -d mysql

效果很好。这里可能缺少什么。

1 个答案:

答案 0 :(得分:2)

您是否在编辑bundle install后运行了Gemfile

如果你这样做,那么尝试运行以下命令,看看手动编辑的应用程序与用-d mysql创建的新应用程序之间有什么区别:

diff /path/to/hand-edited-app /path/to/rails-created-mysql-app