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

السؤال

نشر

أحاول إستخدام Laravel Sail عند إنشاء مشروع لارافيل قمت بتنفيذ الأمر:

curl -s https://laravel.build/sail-test | bash

ثم نفذت الأمر:

cd sail-test && ./vendor/bin/sail up

كل شيء تم بشكل صحيح و عند تجربة المشروع من خلال http://localhost. يعمل بشكل جيد لكن عند تنفيذ أمر التهجير:

sail artisan migrate:install

يظهر الخطأ:


   Illuminate\Database\QueryException 

  SQLSTATE[HY000] [2002] No route to host (SQL: create table `migrations` (`id` int unsigned not null auto_increment primary key, `migration` varchar(255) not null, `batch` int not null) default character set utf8mb4 collate 'utf8mb4_unicode_ci')

  at vendor/laravel/framework/src/Illuminate/Database/Connection.php:678
    674▕         // If an exception occurs when attempting to run a query, we'll format the error
    675▕         // message to include the bindings with SQL, which will make this exception a
    676▕         // lot more helpful to the developer instead of just the database's errors.
    677▕         catch (Exception $e) {
  ➜ 678▕             throw new QueryException(
    679▕                 $query, $this->prepareBindings($bindings), $e
    680▕             );
    681▕         }
    682▕ 

      +29 vendor frames 
  30  artisan:37
      Illuminate\Foundation\Console\Kernel::handle()

كيف يُمكن حل المُشكلة؟

Recommended Posts

  • 1
نشر

تحتاج إلى التعديل على ملف الإعدادات env. لكن أولا قم بتنفيذ الأمر:

docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <container_name_or_container_ID>

سيقوم الأمر بإرجاع عنوان IP لل mysql container ستقوم بنسخه ووضعه في ملف env.

DB_HOST=<ip_address_returned>

بعد ذلك قم بتنفيذ امر التهجير:

sail artisan migrate
  • 0
نشر

يجب التوجه أولاً إلى مجلد المشروع الرئيسي وتنفيذ الأمر:

sail shell

بعدها سيتم تسجيل الدخول إلى المحفظة الخاصة بالمشروع ويمكنك تنفيذ أمر التهجير:

sail artisan migrate

يمكنك أيضاً استخدام اسم المحفظة نفسه الموجود في docker والذي تستطيع إيجاده ضمن: docker-compose.yml والذي يكون بشكل افتراضي:

DB_HOST=mysql

 

  • 0
نشر

ربما يعود الخطأ لوجود كلمة سر في ملف env. حيث يجب وضع القيمة التالية في ملف docker-compose.yml ليتم قراءة كلمة السر..

MYSQL_ALLOW_EMPTY_PASSWORD 'no'

ثم للتأكد من ربط الحاوية بشكل صحيح مع قاعدة البيانات mysql container IP يجب تنفيذ التعليمة التالية:

$ docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <container_name_or_container_ID>

حيث تعيد 
ip

ثم نضيفها في env file.

DB_HOST=<ip_address>

  ip_address  المعاد من التعليمة السابقة
  
  أو 
  
DB_HOST=mysql

ثم نكمل العمل :

$ sail artisan migrate

في حال لم تعمل يجب تسجيل الدخول login in sail إلى الحاوية عن طريق:

sail shell

ثم نكمل artisan migrate.

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...