ruby на рельсах, конвертирующих из sqlite3 в mysql2 gem - PullRequest
1 голос
/ 20 марта 2011

Моя установка

  • 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 user mytestapp имеет соответствующие разрешения для базы данных.

Фактически, когда я создаю новое приложение rails, используя следующее

rails new anotherapp -d mysql

Это прекрасно работает.Чего здесь не хватает.

1 Ответ

2 голосов
/ 20 марта 2011

Вы запустили bundle install после редактирования вашего Gemfile?

Если вы это сделали, попробуйте выполнить следующую команду, чтобы увидеть разницу между вашим отредактированным вручную приложением и новым, которое вы создали с помощью -d mysql:

diff /path/to/hand-edited-app /path/to/rails-created-mysql-app
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...