আসল সমস্যাটি তখন ঘটে যখন আপনি একটি ওপেন-সোর্স রেল অ্যাপ্লিকেশনটিতে কাজ করছেন যার একটি কনফিগারযোগ্য ডাটাবেস অ্যাডাপ্টার থাকা দরকার needs আমি ফ্যাট ফ্রি সিআরএম এর রেল 3 শাখা বিকাশ করছি। আমার পছন্দটি পোস্টগ্রিজ, তবে আমরা ডিফল্ট ডাটাবেসটি মাইএসকিএল 2 হতে চাই।
এই ক্ষেত্রে, Gemfile.lock
রত্নগুলির ডিফল্ট সেট সহ এখনও তদন্ত করা দরকার, তবে আমার মেশিনে আমি যে পরিবর্তনগুলি করেছি তা এড়িয়ে চলতে হবে। এটি সম্পাদন করার জন্য, আমি দৌড়া:
git update-index --assume-unchanged Gemfile.lock
এবং বিপরীত:
git update-index --no-assume-unchanged Gemfile.lock
আপনার মধ্যে নিম্নলিখিত কোডের মতো কিছু অন্তর্ভুক্ত করাও দরকারী Gemfile
। এটি আপনার ডাটাবেস.আইএমএলের উপর ভিত্তি করে উপযুক্ত ডাটাবেস অ্যাডাপ্টার রত্নটি লোড করে।
# Loads the database adapter gem based on config/database.yml (Default: mysql2)
# -----------------------------------------------------------------------------
db_gems = {"mysql2" => ["mysql2", ">= 0.2.6"],
"postgresql" => ["pg", ">= 0.9.0"],
"sqlite3" => ["sqlite3"]}
adapter = if File.exists?(db_config = File.join(File.dirname(__FILE__),"config","database.yml"))
db = YAML.load_file(db_config)
# Fetch the first configured adapter from config/database.yml
(db["production"] || db["development"] || db["test"])["adapter"]
else
"mysql2"
end
gem *db_gems[adapter]
# -----------------------------------------------------------------------------
আমি এটি প্রতিষ্ঠিত সেরা অনুশীলন কিনা তা বলতে পারি না তবে এটি আমার পক্ষে ভাল কাজ করে।