1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const pg_1 = require("pg");
|
4 | const PostgresqlDriver_1 = require("./Orm/PostgresqlDriver");
|
5 | const utils_1 = require("./utils");
|
6 | const logger_1 = require("./logger");
|
7 | async function dbInit(projectDir, options) {
|
8 | const config = options.config;
|
9 | const pool = new pg_1.Pool({
|
10 | password: config.password,
|
11 | user: config.user,
|
12 | database: config.database,
|
13 | host: config.host,
|
14 | port: typeof config.port === 'string' ? Number(config.port) : config.port,
|
15 | });
|
16 | const db = await PostgresqlDriver_1.createDB(pool);
|
17 | while (true) {
|
18 | try {
|
19 | await db.query(PostgresqlDriver_1.sql `SELECT 1`);
|
20 | break;
|
21 | }
|
22 | catch (e) {
|
23 | logger_1.logger.info('Postgres is unavailable', e);
|
24 | await utils_1.sleep(1000);
|
25 | }
|
26 | }
|
27 | const migrations = await PostgresqlDriver_1.readMigrationsFromDir(projectDir + '/migrations/');
|
28 | await PostgresqlDriver_1.migrateUp(db, migrations);
|
29 | return { db, pool };
|
30 | }
|
31 | exports.dbInit = dbInit;
|
32 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGJJbml0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2RiSW5pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJCQUEwQjtBQUMxQiw2REFBMkc7QUFDM0csbUNBQWdDO0FBQ2hDLHFDQUFrQztBQWUzQixLQUFLLFVBQVUsTUFBTSxDQUFvQyxVQUFrQixFQUFFLE9BQWtCO0lBQ3JHLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDOUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxTQUFJLENBQUM7UUFDckIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1FBQ3pCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtRQUNqQixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7UUFDekIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1FBQ2pCLElBQUksRUFBRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSTtLQUN6RSxDQUFDLENBQUM7SUFDSCxNQUFNLEVBQUUsR0FBRyxNQUFNLDJCQUFRLENBQVcsSUFBSSxDQUFDLENBQUM7SUFDMUMsT0FBTyxJQUFJLEVBQUU7UUFDWixJQUFJO1lBQ0gsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLHNCQUFHLENBQUEsVUFBVSxDQUFDLENBQUM7WUFDOUIsTUFBTTtTQUNOO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDWCxlQUFNLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzFDLE1BQU0sYUFBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2xCO0tBQ0Q7SUFDRCxNQUFNLFVBQVUsR0FBRyxNQUFNLHdDQUFxQixDQUFDLFVBQVUsR0FBRyxjQUFjLENBQUMsQ0FBQztJQUM1RSxNQUFNLDRCQUFTLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2hDLE9BQU8sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDckIsQ0FBQztBQXRCRCx3QkFzQkMifQ== |
\ | No newline at end of file |