ruby on rails - sqlite3 को सक्रिय नहीं कर सकता(~> 1.3.6), पहले से सक्रिय sqlite3-1.4.0




ruby-on-rails (4)

मैं Ubuntu का उपयोग कर रहा हूं और db का उपयोग करते समय एक समस्या में भाग रहा हूं: रूबी परियोजना के लिए माइग्रेट करें।

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)

किसी भी समाधान ने मेरे लिए काम नहीं किया, इसलिए मैंने त्रुटि का पता लगाया और कनेक्शन एडेप्टर स्थित किया

स्थान:

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"

मैंने अपना वेबपेज रिफ्रेश किया और सब कुछ काम कर गया !!!

माई एनव

Windows 10
Ruby : 2.5.3-p105
Rails: 5.2.2

मेरा आज भी ऐसा ही मुद्दा था। यहाँ मेरे लिए क्या काम किया है। मैंने माइकल के दृष्टिकोण का उपयोग करने की कोशिश की, लेकिन एक समान त्रुटि प्राप्त हुई।

इसलिए इसके बजाय, मैंने सोचा था कि मणि को हटाकर मुझे एक त्रुटि दे रहा है, gem uninstall sqlite3 -v 1.4.0

और इसके बजाय, मेरी मणि फ़ाइल में उपयोग किया गया। gem 'sqlite3', '~> 1.3.6' bundle update रन किया और यह मेरे लिए एक आकर्षण की तरह काम किया।


समस्या सक्रिय रिकॉर्ड के कारण होती है जिसमें sqlite3 मणि पर संस्करण बाधा होती है। उदाहरण के लिए, रेल 5.2.2 के मामले में (जिस समय मैं यह प्रतिक्रिया लिख ​​रहा हूं उस समय नवीनतम स्थिर रिलीज) यह ~> 1.3.6 । हालांकि, यह बाधा रत्नों में निर्दिष्ट नहीं है, लेकिन एक स्रोत फ़ाइल में है जिसमें एडेप्टर वर्ग है । परिणामस्वरूप, बुंडलर इससे अनजान है, और sqlite3 मणि संस्करण 1.4.0 स्थापित करता है, जो परस्पर विरोधी है।

अच्छी खबर यह है कि फिक्स को पहले ही मास्टर और रेल 5.2 रखरखाव शाखाओं (और संभवतः अन्य) में विलय कर दिया गया है, और 5.2.3 में शामिल किया जाना चाहिए।

अभी के लिए, आप निम्न में से एक कर सकते हैं:

  • अपने gem 'sqlite3', '~> 1.3.6' लिए sqlite3 बाधा जोड़ें: gem 'sqlite3', '~> 1.3.6'
  • 5-2-stable नामक शाखा से सक्रिय रिकॉर्ड स्थापित करें।

सिस्टम में sqlite3 संस्करण जैसा दिखता है जो एप्लिकेशन में स्थापित से अलग है। इस स्थिति में, आप अपने ऐप के लिए एक रत्न संस्करण अपडेट कर सकते हैं:

bundle update sqlite3

या मणिफ़ाइल में मणि संस्करण बदलें:

gem 'sqlite3', '~> 1.4'