sql >> データベース >  >> RDS >> PostgreSQL

Lumen-実行時にデータベース接続を作成します

    目的の方法には、主な問題が1つあります。

    構成オブジェクトを初期化しませんでした。 configを作成するまで、Lumenにはデフォルトで従来のconfigオブジェクトが設定されていません。 ルートフォルダ内のディレクトリ。

    ルーメン構成ドキュメントに書かれているように:

    Lumenフレームワークのすべての構成オプションは.envファイルに保存されています。

    目的のアプローチには、Laravelで使用されている従来の構成オブジェクトが必要です。

    そのオブジェクトと新しい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の接続配列から不要な接続を削除することもできます。 コメントするか、完全に削除します。

    app / config / database.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),
            ],
    ]
    

    bootstrap / 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を削除するには 接続、nullに設定するだけです :

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


    1. SQLite Count()をGROUP BYと組み合わせて、結果セットに「カウント」列を追加します

    2. Oracleの一意性制約と一意性インデックス

    3. SQLServerで2つの日付の間のすべての日付を取得する

    4. Python From Scratch:動的なWebサイトを作成する