أقوم بما يبدو أنه استيراد vbulletin 4 مع بعض الملايين من المشاركات. الخادم الذي أقوم به بطيء جدًا (كان المستخدمون يستوردون بمعدل 50/دقيقة عندما استسلمت). تشير الحسابات التقريبية إلى أنه سيستغرق 3 أشهر.
لذا سأمنح برنامج استيراد الدُفعات فرصة أخرى. أقوم بتشغيل برامج الاستيراد العادية في حاوية إنتاج. نفس الحاوية التي كانت تشغل البرنامج النصي القياسي بسعادة لا يمكنها الوصول إلى قاعدة بيانات Discourse. لكن مستورد الدُفعات يريد الوصول إلى /var/run/postgresql/.s.PGSQL.5432 بدلاً من استخدام الأشياء التي يستخدمها الإنتاج والبرنامج النصي العادي للاستيراد. لذلك أضيف هذا إلى web_only.yml.
- volume:
host: /var/discourse/shared/data/postgres_run
guest: /var/run/postgresql
والآن يمكنني الوصول إلى postgres.
ولكن بعد ذلك، لا يمكنني الوصول إلى mysql. نفس بيانات الاعتماد التي تعمل في البرنامج النصي العادي والتي تعمل داخل الحاوية من سطر أوامر mysql لا تعمل. أحصل على رفض الوصول. أضفت puts لرؤية أن بيانات الاعتماد كانت كل ما كان متوقعًا، وهي كذلك، ولكن الكود من البرنامج النصي العادي:
@client =
Mysql2::Client.new(host: DB_HOST, username: DB_USER, password: DB_PW, database: DB_NAME)
يعمل بشكل جيد، ولكن هذا
@client =
Mysql2::Client.new(
host: host,
username: username,
password: password,
database: database,
reconnect: true,
)
لا يعمل. لقد تحققت، و
puts "#{username}:#{password}@#{host}/#{database}"
puts "PASSWORD: #{password.inspect}"
تظهر كل شيء كما هو متوقع.
هل أحتاج إلى تشغيل هذا في بيئة تطوير؟ (لماذا؟)
أنا مرتبك جدًا بشأن كيفية عمل اتصال mysql في عميل mysql وبرنامج الاستيراد العادي، ولكن ليس في برنامج الدُفعات. يبدو الكود متماثلًا. لا أرى أي شيء عن mysql في نصوص base.rb.
أو ربما الآلة مسكونة.