سؤال

أقوم بإعداد اتصال عن بعد محليًا وأحتاج إلى دفعه إلى Heroku.عندما دفعته إلى هيروكو حصلت على خطأ قائلا:

لم يتم تكوين RemoteDBName.

أفترض فقط (تم البحث عنه ومشاهدته أيضًا) أن Heroku يستخدم ملف config.yml الخاص به.

هل كانت مفيدة؟

المحلول

اكتشفنا ذلك، بالنسبة لأي شخص يتصل بقاعدة بيانات بعيدة على Heroku وقد يرى هذا:

يستبدل Heroku ملف قاعدة البيانات.yml الخاص بك بملفه الخاص، ويستبدل أي شيء موجود في ملفك.

للالتفاف حول هذا:

  • قم بإنشاء ملف جديد في مجلد التكوين الخاص بك، وقم بتسميته مهما كان.yml
  • قم بإعداد سلسلة الاتصال في هذا الملف.
  • قم بإنشاء ملف جديد في مجلد المُهيئات الخاص بك، وقمت بالاتصال به باسم Load_remote.rb.في هذا الملف اكتب هذا السطر من الكود:

    REMOTE_DB = YAML.load_file("#{RAILS_ROOT}/config/YOURNEWFILEHERE.yml")

  • أنشئ اتصالك في أي من الطرز البعيدة باستخدام سطر التعليمات البرمجية هذا:

    Found_connection Remote_DB['مهما قمت بتسمية سلسلة الاتصال الخاصة بك في ملف yml هنا']

نصائح أخرى

واسمحوا لي أن تظهر لك كيف يتم تكوين قاعدة بيانات عند العمل مع Heroku. وأعتقد أن هذا قد يكون قليلا غامضة في وثائق، وبعض الناس خلط أكثر من ذلك. يتيح استخدام وحدة التحكم:

zero:~/Projects/crantastic $ heroku console
Ruby console for crantastic.heroku.com
>> puts File.read(Rails.configuration.database_configuration_file)
---
production:
  encoding: unicode
  adapter: postgresql
  username: something_random
  port: 5432
  host: somewhere.at.heroku
  database: something_random
  password: something_random

=> nil
>>

وHeroku عمليا محل التطبيقات database.yml الخاص بك عند دفع موقعك لأجهزتهم. سيتم تخزين البيانات الخاصة بك في واحدة من خوادم كيو يتوهم لهم بغض النظر عن ما كنت تستخدم محليا - وهذا يعني أنه لم يكن لديك للتفكير database.yml على الإطلاق (باستثناء purpses تنمية، وبطبيعة الحال). الصنابير بالتأكد من أن كل شيء على ما ديسيبل الملحد. إذا كنت ترغب في دفع التطور الأخير الخاص بك ديسيبل لHeroku، ببساطة تشغيل heroku ديسيبل: دفع

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top