ノードアプリケーションを起動するときに次のようなことをしようとしています。 dbオブジェクトを他のモジュールにエクスポートする必要があるので、dbをエクスポートする必要があります。Knexがプログラムで最新のものに移行する
問題は移行コードによってエラーが発生する可能性がありますが、nodejsの非同期性のためにdb configがすでにエクスポートされています。私は次のコードを同期しようとしているので、移行が完了した場合にのみエクスポートが行われます。
これ以外の方法は、移行部分からの抽象的なdbの初期化ですが、移行が失敗した場合は、アプリケーションをシャットダウンする必要があります。
/*
1. Db init
2. Migration stuff
*/
const db = knex(config);
(async() => {
try {
const migrate = async() => db.migrate.latest();
await migrate();
} catch(ex) {
console.log('Error migrating: ', ex);
}
})();
module.exports = db;