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

続編:複数のデータベースの使用

    作成するDB接続ごとに、sequelizeのさまざまなインスタンスを作成する必要があります。

    const Sequelize = require('Sequelize');
    const userDb = new Sequelize(/* ... */);
    const contentDb = new Sequelize(/* ... */);
    

    sequelizeから作成された各インスタンスには、独自のDB情報があります(db host、url、user、passなど) 、およびこれらの値は変更されることを意図していないため、sequelizeの1つのインスタンスで複数の接続を作成する「正しい」方法はありません。

    ドキュメントから

    データベースごとに1つのインスタンス

    これを行うための「一般的な」アプローチは、データベースをconfig.jsonに配置することです。 ファイルを作成してループし、動的に接続を作成します。たとえば、次のようになります。

    config.json

    {
        /*...*/
        databases: {
            user: {
                path: 'xxxxxxxx'
            },
            content: {
                path: 'xxxxxxxx'
            }
        }
    }
    

    アプリ

    const Sequelize = require('sequelize');
    const config = require('./config.json');
    
    // Loop through
    const db = {};
    const databases = Object.keys(config.databases);
    for(let i = 0; i < databases.length; ++i) {
        let database = databases[i];
        let dbPath = config.databases[database];
        db[database] = new Sequelize( dbPath );
    }
    
    // Or a one liner
    const db = Object.entries(config).reduce((r, db) => (r[db[0]] = db[1].path) && r, {});
    
    // Sequelize instances:
    // db.user
    // db.content
    

    それを起動して実行するには、もう少しコーディングを行う必要がありますが、それは一般的な考え方です。



    1. SQLServerのAlwaysOn可用性グループを監視するさまざまな方法

    2. データの解析中にエラーが発生しましたorg.json.JSONException:-Androidの文字0で入力が終了しました

    3. sqlalchemyでdbmysqlを作成する方法

    4. 今日、今週、今月のphpmysqlからレコードを選択します