PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

लुमेन - रनटाइम पर डेटाबेस कनेक्शन बनाएं

आप जिस पद्धति के लिए जा रहे हैं, उसमें एक मुख्य समस्या है:

आपने कोई कॉन्फ़िगरेशन ऑब्जेक्ट प्रारंभ नहीं किया है। जब तक आप एक config . नहीं बनाते, तब तक डिफ़ॉल्ट रूप से लुमेन में कोई पारंपरिक कॉन्फ़िग ऑब्जेक्ट सेट नहीं होता है आपके रूट फ़ोल्डर में निर्देशिका।

जैसा कि लुमेन कॉन्फ़िगरेशन डॉक्स में लिखा गया है:

<ब्लॉकक्वॉट>

Lumen फ़्रेमवर्क के लिए सभी कॉन्फ़िगरेशन विकल्प .env फ़ाइल में संग्रहीत हैं।

आप जिस दृष्टिकोण के लिए जा रहे हैं, उसके लिए पारंपरिक कॉन्फिग ऑब्जेक्ट की आवश्यकता है जैसा कि लारवेल में उपयोग किया जाता है।

उस वस्तु को प्राप्त करने के लिए और अपना नया retail_db डेटाबेस कनेक्शन काम कर रहा है:

  • एक config बनाएं आपके प्रोजेक्ट रूट में फ़ोल्डर
  • फ़ाइल को कॉपी करें vendor/laravel/lumen-framework/config/database.php इस कॉन्फ़िग फ़ोल्डर में
  • डेटाबेस कॉन्फ़िगरेशन ऑब्जेक्ट को अपने bootstrap/app.php में प्रारंभ करें के साथ $app->configure('database'); (इसे लाइन 28 पर रखें)

आपकी फ़ोल्डर संरचना अब इस तरह दिखती है:

├── app
├── bootstrap
├── config
   └── database.php
├── database
├── public
├── resources
├── storage
├── tests
└── vendor

बेशक आप उन कनेक्शनों को हटा सकते हैं जिनकी आपको आवश्यकता नहीं है app/config/database.php में कनेक्शन सरणी से टिप्पणी करके या उन्हें पूरी तरह से हटाकर।

ऐप/कॉन्फ़िगरेशन/डेटाबेस.php

'connections' => [

        /*'testing' => [
            'driver' => 'sqlite',
            'database' => ':memory:',
        ],*/

        'sqlite' => [
            'driver'   => 'sqlite',
            'database' => env('DB_DATABASE', base_path('database/database.sqlite')),
            'prefix'   => env('DB_PREFIX', ''),
        ],

        'mysql' => [
            'driver'    => 'mysql',
            'host'      => env('DB_HOST', 'localhost'),
            'port'      => env('DB_PORT', 3306),
            'database'  => env('DB_DATABASE', 'forge'),
            'username'  => env('DB_USERNAME', 'forge'),
            'password'  => env('DB_PASSWORD', ''),
            'charset'   => env('DB_CHARSET', 'utf8'),
            'collation' => env('DB_COLLATION', 'utf8_unicode_ci'),
            'prefix'    => env('DB_PREFIX', ''),
            'timezone'  => env('DB_TIMEZONE', '+00:00'),
            'strict'    => env('DB_STRICT_MODE', false),
        ],
]

आपका बूटस्ट्रैप/app.php परिवर्तनों के साथ:

/*
|--------------------------------------------------------------------------
| Create The Application
|--------------------------------------------------------------------------
|
| Here we will load the environment and create the application instance
| that serves as the central piece of this framework. We'll use this
| application as an "IoC" container and router for this framework.
|
*/

$app = new Laravel\Lumen\Application(
    realpath(__DIR__.'/../')
);

//$app->withFacades();
// $app->withEloquent();

$app->configure('database');

अब आप अपने routes.php . में पहले से मौजूद कोड का उपयोग कर सकते हैं ।

अपना retail_db delete मिटाने के लिए कनेक्शन, बस इसे null . पर सेट करें :

$config->set('database.connections.retail_db', null);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. टुपल्स क्रमिक रूप से डेटाबेस तालिका में सम्मिलित नहीं हैं?

  2. PSQL में DECIMAL और NUMERIC डेटाटाइप के बीच अंतर

  3. ActiveRecord कच्चे SQL से टाइप किए गए परिणाम प्राप्त करना

  4. निष्पादित करें... PL/pgSQL में कथन का उपयोग रिकॉर्ड प्रकार के साथ काम नहीं करता है?

  5. PostgreSQL में भौतिक प्रतिकृति तंत्र