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

السؤال

نشر (معدل)

أحاول الاتصال مع قاعدة بيانات من نوع PostgreSQL في لارافيل لإجراء التهجير على البيانات. ولكنه لا يتم التعرف على القاعدة ويأخذ اسم قاعدة البيانات من Mysql بدلاً منها.

لقد قمت بإضافة الاتصال ضمن database.php:

'mysql' => array(
        'driver'    => 'mysql',
        'host'      => 'localhost',
        'database'  => 'database',
        'username'  => 'root',
        'password'  => '',
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
    ),

'pgsql' => array(
        'driver'   => 'pgsql',
        'host'     => 'localhost',
        'database' => 'testdb',
        'username' => 'user123',
        'password' => '',
        'charset'  => 'utf8',
        'prefix'   => '',
        'schema'   => 'public',
    ),

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

[InvalidArgumentException]
Database [mysql] not configured.

فما هي المشكلة هنا؟ لماذا لا يتم التعرّف على الاتصال مع pgsql؟

تم التعديل في بواسطة Amir Alsaeed

Recommended Posts

  • 0
نشر

يجب التأكد من تعديل قيمة default لتشير إلى postgre ضمن ملف app/config/database.php:

'default' => 'postgres',

وفي حال بقي الخطأ التالي بالظهور:

[PDOException] could not find driver

يجب التأكد من إضافة الإعدادات اللازمة في ملف php.ini وتثبيت الإضافة pdo_pgsql.so و pgsql.so وتفعيلهما. وفي حال كان نظام التشغيل ويندوز يمكن التوجه لملف PHP وإلغاء التعليق على الإضافات التالية:

extension=pdo_pgsql.so

extension=pgsql.so

أما لنظام تشغيل Ubuntu:

sudo apt-get install php7.0-pgsql

مع تعديل نسخة php بالنسخة الموجودة لديك.

وأخيراً، بعد هذه التعديلات، يجب التأكد من القيم الموضوعة ضمن ملف .env في لارافيل بالشكل الموافق لإعدادات قاعدة البيانات.

ومن الممكن أيضاً الحاجة لإضافة متغيرات البيئة Environment Variables وإضافة المسار الخاص بـ bin التابع ل postgreSql على جهازك.

  • 0
نشر

قبل أي تعديل يمكنك التأكد من 

extension=pdo_pgsql
extension=pgsql

في ملف php.ini و إزالة ; (الفاصلة المنقوطة) و يمكنك من خلال ملف .env تغيير قيمة الأتصال و اختيار connection الذي تريده فتصبح 

DB_CONNECTION=pgsql

وتغيير قيم إلى ما يناسب اتصالك.

DB_HOST=<your_database_IP_address>

DB_PORT=5432

DB_DATABASE=postgres

DB_USERNAME=postgres

DB_PASSWORD=postgres

 

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...