রেলস 4 - মণি :: লোডেরর: ডেটাবেস অ্যাডাপ্টারের জন্য নির্দিষ্ট 'mysql2', তবে রত্নটি লোড করা হয়নি


150

আমার রত্নটিতে আমার রয়েছে:

gem 'mysql2'

আমার ডাটাবেস.আইএমএলটি নিম্নরূপ:

default: &default
  adapter: mysql2
  database: <%= ENV['db_name'] %>
  username: <%= ENV['db_user'] %>
  password: <%= ENV['db_pass'] %>
  host:     <%= ENV['db_host'] %>
  pool: 32
  socket:   <%= ENV['socket'] %>

development:
  <<: *default

production:
  <<: *default

আমি উভয় রান করেছি bundle updateএবং bundle installআমার Gemfile.lock শো mysql2।

তবে আমি যখন চালনা rake db:migrateকরি তখন এটি আমার কম্পিউটার এবং স্টেজিং সার্ভার উভয় ক্ষেত্রেই পাই:

myproject.com(master)$ rake db:migrate
WARNING: Use strings for Figaro configuration. 10000012508 was converted to "10000012508".
WARNING: Use strings for Figaro configuration. 860526407370038 was converted to "860526407370038".
rake aborted!
Gem::LoadError: Specified 'mysql2' for database adapter, but the gem is not loaded. Add `gem 'mysql2'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).
.....

নিশ্চিত শুধু করতে সেখানে mysql2 বা কিছু খারাপ সংস্করণ ছিল না আমি bundle clean --forceদৌড়ে গিয়ে bundle installএবং bundle updateআবার এবং যখন আমি রান gem listআমি দেখতে mysql2 (0.4.0)এবং অন্য কোনো সংস্করণ।

যে কোনও ধারণা সবচেয়ে প্রশংসিত হবে।


সমাধান

এটি বর্তমানে ব্যালস 4.1.x এবং 4.2.x নিয়ে একটি সমস্যা, এই বাগ রিপোর্ট অনুসারে , এটি রেল 4.2.x এর পরবর্তী প্রকাশে স্থির করা হবে (লিঙ্কটির জন্য মন্তব্যে ডেকরকে জমা দেওয়া)।

মধ্য সময়ে আপনি নিজের রত্নখণ্ডকে এই লাইনটি যুক্ত করে mysql2 এর 0.3.08 সংস্করণে ডাউনগ্রেড করে ঠিক করতে পারেন:

gem 'mysql2', '~> 0.3.18'

1
চেষ্টা করুনbundle update mysql2
পাভান

আমিও চেষ্টা করেছি। কাজ হয়নি। আমি যা দেখছি তা থেকে mysql2 (0.4.0)রুবি রত্নটি নেওয়া সর্বশেষতম সংস্করণ এবং এটি ইতিমধ্যে ইনস্টল।
newUserNameHere

12
সমাধানটি এখানে ছিল: gem 'mysql2', '~> 0.3.18'জেমফাইলে।
newUserNameHere

6
এটি মাইএসকিএল 2 সহ কোনও ত্রুটি নয়, এটি অ্যাক্টিভেকর্ড অ্যাডাপ্টারে প্রয়োজনীয়তার সাথে সমস্যা: github.com/rails/rails/issues/21544 । এটি রেল মাস্টারে স্থির করা হয়েছে: github.com/rails/rails/commit/…
ডিসিআর

@ পবন আওসোম মাহন !! _ / _
বরুণ

উত্তর:


50

আরও একটি আপডেট - প্রশ্নের সমাধানটি সঠিক।

চতুর্থ মন্তব্যটি নোট করা মূল্যবান:

এটি মাইএসকিএল 2 সহ কোনও ত্রুটি নয়, এটি অ্যাক্টিভেকর্ড অ্যাডাপ্টারে প্রয়োজনীয়তার সাথে সমস্যা: http://github.com/rails/rails/issues/21544 । এটি রেল মাস্টারে স্থির করা হয়েছে: https://github.com/rails/rails/commit/5da5e3772c32593ecf2f27b8865e81dcbe3af692

আমি শাখায় বেঁধে Rails 4.2.4রাখতে সক্ষম হয়েছি 4-2-stableএবং এটি সর্বশেষের সাথে কাজ করতে সক্ষম হয়েছি mysql2:

এখানে চিত্র বর্ণনা লিখুন

gem 'rails', '~> 4.2.4', git: "git://github.com/rails/rails.git", branch: '4-2-stable'
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw] #-> Rails 4.1+

#DB
gem 'mysql2'

গতি যদি অগ্রাধিকার হয় তবে রেল '4.2.4' শাখায় পিন করার পরিবর্তে মাইএসকিএল 2 কে '0.3.20' এ নামিয়ে দেওয়া কিছুটা দ্রুত ছিল: '4-2-স্থিতিশীল'।
seanriordan08

এটি বিশ্বাস করা শক্ত যে মাইএসকিএল রত্নটিতে অনেকগুলি কৃপণ বগী সমস্যা পোস্টগ্রিজ এসকিউএল টি__টি এর সাথে তুলনা করে
নিউবাইক

এটি উইন্ডোজের পরিবেশ - ইমেজম্যাগিকের সাথে এটি একই রকম You আপনাকে বাহ্যিক নির্ভরতা ব্যবহার করতে হবে এবং উইন্ডোজ যেহেতু তাদের জন্য কেন্দ্রীয় রেপো নেই, এটি জটিল হয়ে
রিচার্ড পেক

5 রেল সম্পর্কে কি?
রিচার্ড পেক

@ রিচার্ডপেক আমার কাছে এই সমস্যাগুলি রয়েছে
রেলগুলি 5.0.3

67

শুধু কর:

gem 'mysql2', '~> 0.3.18' এই রত্ন সঙ্গে কাজ করে rails version 4.x.x

যদি ইনস্টল gem 'mysql2', '~> 0.4.0'এটি মণি লোড ত্রুটি উত্পাদন করে এবং সামঞ্জস্যতা সমস্যার কারণ


পরিষ্কার, সরল এবং সংক্ষিপ্ত। ধন্যবাদ!
এএম 33 ডি

আমার জন্য কাজ করেছেন @ কালেম
খালিদহ

9

এই সমস্যাটি এখানে সম্বোধন করা হয়েছিল: https://github.com/brianmario/mysql2/issues/950

৪.x রেলগুলির জন্য, 0.5.x আপগ্রেড এড়াতে দয়া করে মণিটি mysql2 '~> 0.4.0' এ পিন করুন।

Gemfile:

gem 'rails', '4.2.8'
gem 'mysql2', '~> 0.4.0'

তারপরে দৌড়াও bundle update rails mysql2

আমি বর্তমানে mysql v 8.0.11 ব্যবহার করছি


8

কখন পোস্ট করা হয়েছিল এবং রেলের সংস্করণ ব্যবহৃত হচ্ছে সে সম্পর্কিত এই নির্দিষ্ট প্রশ্নের উত্তর হ'ল সমস্যাটি একটি bundle updateএবং আপনার মাইএসকিএল 2 সংস্করণটি 0.4.x আপডেট করার কারণে তৈরি হয়েছে যা সর্বশেষতম রেলস অ্যাক্টিভেকর্ডের সাথে অসঙ্গতিজনিত সমস্যা রয়েছে।

আবার, দয়া করে মনে রাখবেন যে এটি রেল / অ্যাক্টিভেকর্ডের পুরানো সংস্করণ ব্যবহার করা লোকদের জন্য সমাধান নয়।

দ্রুত সমাধানটি হ'ল নিম্নলিখিতভাবে mysql2আপনার রত্নমঞ্চে সংস্করণটি নির্দিষ্ট করা :

gem 'mysql2', '0.3.20'

দীর্ঘ সমাধানটি হ'ল অ্যাক্টিভেকর্ডে আপডেট হওয়ার জন্য বা মাইএসকিএল 2-তে পরিবর্তিত হওয়ার জন্য অপেক্ষা করা।


7

আপনি যদি আপনার রেল সংস্করণটি আপগ্রেড করতে সক্ষম হন তবে আপনার জেমফাইলে এটিতে পরিবর্তন করুন এবং এটি মাইএসকিএল 2 রত্ন সংস্করণকে হ্রাস না করেই সমস্যার সমাধান করবে:

gem 'rails', '4.2.6'

5

সম্পূর্ণ শিক্ষানবিস হিসাবে আমি কীভাবে এটি করতে হবে তা নিয়ে বিভ্রান্ত হয়ে পড়েছিলাম তাই আমি কেবল একটি পরীক্ষামূলক চেক করেছি এবং শেষ পর্যন্ত আমার সার্ভারটি কাজ করে চলেছি, এখানে আমি এটি কীভাবে কাজ করেছিলাম তা এখানে।

ডিরেক্টরি ( "কাজ") কাজ করার ফাইলে পেতে এবং সেখান থেকে আপনার তৈরি করা অ্যাপ্লিকেশন ফাইল ( "sample_app") যা মণি ফাইল ( "Gemfile") সম্পাদনায় যান MySQL 2 ইনস্টল যেতে হয়েছে ঢোকা মণি 'mysql2' থেকে মণি 'mysql2', '~> 0.3.18'

এখন সেন্টিমিডিতে ফিরে যান এবং "বান্ডেল ইনস্টল করুন" কমান্ডটি চালান।

সুতরাং বন্ধনীতে উপরের ফাইলগুলি বিবেচনা করে ফাইল সম্পাদনা করার ডিরেক্টরিটি হওয়া উচিত। "সি \ কাজ \ sample_app \ Gemfile"

আশা করি আমি কিছুটা সাহায্য পেয়েছি


4

এটি সাধারণত ঘটে যখন আপনি আপনার মেশিনে কিছু মাইএসকিএল প্যাকেজ মিস করছেন। আপনি থেকে কোন ত্রুটি আছে gem install mysql2? আপনি কোন ওএস এ কাজ করছেন?

ডিবিয়ান বা উবুন্টুতে থাকলে চেষ্টা করুন sudo apt-get install libmysqlclient-dev

এছাড়াও নিশ্চিত করে নিন যে রত্নটি groupআপনার জেমফাইলে কোনও বিবৃতিতে রাখা হয়নি।


সহায়তার জন্য +1 তবে আমার কাছে ইতিমধ্যে libmysqlclient-dev আছে, এবং রত্নটি একটি গ্রুপের বিবৃতিতে নেই। সবচেয়ে আশ্চর্যের বিষয় হ'ল এটি আমার অন্যান্য প্রকল্পগুলিতে কাজ করে, কেবল এটির নয়। এছাড়াও এটি আমার ওএসের কোনও নতুন ইনস্টল নয় আমি কিছু সময়ের জন্য আমার পরিবেশে কোনও পরিবর্তন করি নি। এবং একই স্টেজিং সার্ভারের ক্ষেত্রেও যেখানে আমি একই সমস্যাগুলি দেখছি।
ব্যবহারকারীর নাম এখানে

1

একই সমস্যা ছিল কিন্তু source 'https://rubygems.org'রত্ন ফাইল সমাধান ইস্যু শীর্ষে যুক্ত ।

পদক্ষেপ:

source 'https://rubygems.org'আপনার রত্ন ফাইল যোগ করুন। মন্তব্য mysql2 gemকরুন gem 'mysql2', '~> 0.3.18' এবং রান যোগ করুনbundle install


0

এটা চেষ্টা কর:

bundle update mysql2

এই কমান্ডটি আপনার 'mysql2' রত্নটি সর্বশেষতম সংস্করণে (০.০.১ 0.3 বা তার বেশি হওয়া উচিত) আপডেট করবে এবং আপনার রেল সার্ভারটি শুরু করবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.