اذهب إلى المحتوى
  • 0

الفرق بين env المحلية و config vars في heroku

محمود سامي حسين

السؤال

أولا، عند انشاء مشروع جديد في هيروكو وعمل deploy له هل يجب ان اقوم باضافة متغيرات البيئة كاعدادات قاعدة البيانات مثلا في ملف env. ام أكتفي باضافتها هنا فقط في config vars ؟

ثانيا، لدي مشكله تحدث عند التهجير سواء في بيئه محليه أو علي هيروكو . حيث انه يجب أن أقوم بتسميه اسم الملف بسنة سابقة. مثلا اذا كان اسم الملف يحتوي علي 2021 يجب ان اقوم بتسميته الي 2004  ويجب ان يكون اول سطر والا يتم تجاهل الملف ولا تحدث عمليه التهجير، ما السبب في ذلك؟

استخدم خادم xampp باصدار قديم.l;k;lk;.PNG

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

في هيروكو، أي متغيرات تخص البيئة يجب إضافتها إلى قسم إعداد المتغيرات ليتم العمل بها لأن ملف البيئة env. متجاهل افتراضا من عليها.
للإجابة على سؤالك الثاني بشأن تجاهل ملف التهجير يجب أولا فهم طريقة لارافيل والمنطق وراء تعقب ملفات التهجير وتطبيقات الشيفرات داخلها حتى يمكن تحديد المشكل بالضبط.

  • تحمل ملفات التهجير في لارافيل الأسماء على النحو التالي:
    2021_12_03_100000_create_users_table

     

  • يتم تقطيع سلسلة الاسم النصية إلى 7 أجزاء كالتالي:

    2021
    12
    03
    100000
    create
    users
    table

     

  • يتم اقتطاع الأربع أجزاء الأولى الممثلة بتاريخ إنشاء ملف التهجير ليتبقى:

    create
    users
    table

     

  • يتم إعادة تشكيل السلسة النصية و كتابة الأحرف الأولى كأحرف كبيرة كالتالي:

    CreateUsersTable

     

يكون هذا هو اسم الصنف الموجود داخل ملف التهجير، ولارافيل تقوم بكل هذا عند إنشاء ملف تهجير عن طريق الأمر: 

php artisan make:migration create_users_table

أو عند إنشاء ملف نموذج:

php artisan make:model -m

تحدث أحيانا مشكلة تجاهل ملف التهجير هاته عند إنشاء الملفات يدويا أو تعديل أسماءها لاحقا، ويكون ذلك عن الإخلال بترتيب أو خطأ بخصوص توافق اسم ملف التهجير مع الصنف المحتو فيه مثل: وضع تاريخ الإنشاء آخرا، وهذا في الأرجح ما حصل معك. 

وبالتالي يجب دوما عند إنشاء ملفات التهجير يدويا مراعاة القواعد التي يستعملها لارافيل في استخراج الأصناف المستهدفة من الملفات.

[year]_[month]_[day]_[HHMMSS]_[action]_[tableName]

 حل آخر يقدمه لارافيل، هو في إنشاء ملفات التهجير المجهولة التي لا يتطلب اسم ملفها مراعاة لقواعد التسمية في لارافيل. إذ يمكنك تسمية هذا الملف وفق ما تشاء بشرط أن يحتوي التعريف التالي داخله:

<?php

use Illuminate\Database\Migrations\Migration;

return new class extends Migration
{
    //
};

تعرف أكثر عن تهجير قواعد البيانات (migrations) على Laravel.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

الملف .env يعمل فقط في بيئة التطوير أي انه لا يجب أن ترفعه الى اي مكان فعمله ينتهي في حاسوبك ولهذا يجب تجاهله عن الرفع على github وبالنسبة ل heroku فانت أي متغير بيئي مستخدم من طرفك في المشروع يجب وضعه في ال config vars ولن تكون هناك مشكلة لأن مشروعك سيتغذى على متغيرات البيئة الموضوعة في config vars 

ملاحظة 

عند تغيير متغيرات البيئة config vars يجب عمل restart ل dyno لتأخذ الفعالية 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...