невозможно активировать sqlite3 (~> 1.3.6), уже активирован sqlite3-1.4.0 - PullRequest
0 голосов
/ 05 февраля 2019

Я использую Ubuntu и сталкиваюсь с проблемой при использовании db: migrate для проекта ruby.

rails aborted!
LoadError: Error loading the 'sqlite3' Active Record adapter. Missing a gem it depends on? can't activate sqlite3 (~> 1.3.6), already activated sqlite3-1.4.0. Make sure all dependencies are added to Gemfile.
/home/juan/odin_on_rails/RailsaAPP/bin/rails:9:in `<top (required)>'
/home/juan/odin_on_rails/RailsaAPP/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'

Caused by:
Gem::LoadError: can't activate sqlite3 (~> 1.3.6), already activated sqlite3-1.4.0. Make sure all dependencies are added to Gemfile.
/home/juan/odin_on_rails/RailsaAPP/bin/rails:9:in `<top (required)>'
/home/juan/odin_on_rails/RailsaAPP/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'
Tasks: TOP => db:migrate => db:load_config
(See full trace by running task with --trace)

Ответы [ 5 ]

0 голосов
/ 17 февраля 2019

Проблема вызвана Active Record, которая имеет ограничение версии на гем sqlite3.Например, в случае Rails 5.2.2 (последний стабильный выпуск на момент написания этого ответа) это ~> 1.3.6.Однако это ограничение не указано в gemspec, а в исходном файле, который содержит класс адаптера .Как следствие, Bundler не знает об этом и устанавливает версию 1.4.0 sqlite3 gem, которая конфликтует.

Хорошая новость заключается в том, что исправление уже объединено в master и Rails 5.2ветви обслуживания (и, возможно, другие), и должны быть включены в 5.2.3.

. На данный момент вы можете выполнить одно из следующих действий:

  • Добавить ограничение sqlite3 в свой Gemfile:gem 'sqlite3', '~> 1.3.6'
  • Установить Active Record из ветви с именем 5-2-stable.
0 голосов
/ 09 февраля 2019

Ни одно из решений не помогло мне, поэтому я обнаружил ошибку и обнаружил адаптеры подключения

Расположение:

C:\Ruby\lib\ruby\gems\2.5.0\gems\activerecord-5.2.2\lib\active_record\connection_adapters\

Файл:

sqlite3_adapter.rb

изменено

gem "sqlite3", "~> 1.3.6"

до

gem "sqlite3", "~> 1.4.0"

Я обновил свою веб-страницу, и все работает !!!

Мой Env

Windows 10
Ruby : 2.5.3-p105
Rails: 5.2.2
0 голосов
/ 05 февраля 2019

У меня была похожая проблема сегодня.Вот что сработало для меня.Я попытался использовать подход Майкла, но получил похожую ошибку.

Поэтому вместо этого я удалил камень, который, как мне показалось, выдавал ошибку, на gem uninstall sqlite3 -v 1.4.0

и вместо этого использовал его в своем драгоценном камне.файл.gem 'sqlite3', '~> 1.3.6' Пробежал bundle update, и это сработало для меня как заклинание.

0 голосов
/ 07 февраля 2019

Я решил эту ошибку, настроив версию sqlite3 в Gemfile следующим образом:

gem 'sqlite3', '~> 1.3', '< 1.4'

Казалось, что sqlite3-1.3.6 не работает нормально, а sqlite3-1.4 еще не поддерживается, поэтомуон (строка, которую я предлагаю исправить для этой проблемы) загрузит последнюю версию 1.3.В моем случае это sqlite3-1.3.11.

Я использую rails-5.0.0 и ruby-2.5.1 в моем проекте.

0 голосов
/ 05 февраля 2019

Похоже, версия sqlite3 в системе отличается от установленной в приложении.В этом случае вы можете обновить версию гема для своего приложения:

bundle update sqlite3

или изменить версию гема в Gemfile:

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