Rails mysql2, неопределенный метод 'accept' для nil: NilClass на рейке db: migrate - PullRequest
0 голосов
/ 31 мая 2019

Итак, я работаю в Rails-приложении, которое имеет следующее в Gemfile:

gem 'mysql2', '<0.4' </p>

Я продолжил сследующее:

  • установка пакета
  • rake db: create

Отсюда я получаю

Произошла ошибка во времяустановка mysql2 (0.3.21), и Bundler не может продолжить.

Поэтому я обновляю его до

gem 'mysql2', '~> 0.4.10'

Запустите пакетную установку и получите rake db: create.

Итак, я получаю

LoadError: Пожалуйста, установите адаптер mysql2: gem install activerecord-mysql2-adapter (can 't активируйте mysql2 (~> 0.3.10), уже активирован mysql2-0.4.10. Убедитесь, что все зависимости добавлены в Gemfile.)

Gem :: LoadError: невозможно активировать mysql2 (~> 0.3.10), уже активирован mysql2-0.4.10.Убедитесь, что все зависимости добавлены в Gemfile.

Отсюда, если я попробую консоль rails, я получу:

block (2 levels) in replace_gem': Please install the mysql2 adapter: gem install activerecord-mysql2-adapter`(не могу активировать mysql2 (~> 0.3.10), уже активирован mysql2-0.4.10. Убедитесь, что все зависимости добавлены в Gemfile.) (LoadError)

Поэтому я обновляю свой gemfile доhave:

gem 'mysql2', '~> 0.4.10' gem 'activerecord-mysql2-adapter'

Консоль Rails работает, но rake db: migrate приводит к

рейк отменен!NoMethodError: неопределенный метод `accept 'для nil: NilClass

И все, что я нашел для решений, это удалить activerecord-mysql2-адаптер ... и это не работает.

Для справки использую: ruby ​​2.3.5, rails 3.2.22.5

1 Ответ

0 голосов
/ 31 мая 2019

Если вы используете устаревшую версию Rails (а 3.2 является крайне устаревшей), вам нужно будет использовать совместимую версию mysql2.Если это 0.3.21, то:

gem 'mysql2', '~> 0.3.21'

Ничто другое не будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...