diff --git a/database/src/helpers.ts b/database/src/helpers.ts deleted file mode 100644 index 710094548..000000000 --- a/database/src/helpers.ts +++ /dev/null @@ -1,34 +0,0 @@ -import CONFIG from './config' -import { createPool, PoolConfig } from 'mysql' -import { Migration } from 'ts-mysql-migrate' -import path from 'path' - -const poolConfig: PoolConfig = { - host: CONFIG.DB_HOST, - port: CONFIG.DB_PORT, - user: CONFIG.DB_USER, - password: CONFIG.DB_PASSWORD, - database: CONFIG.DB_DATABASE, -} - -// Pool? -const pool = createPool(poolConfig) - -// Create & Initialize Migrations -const migration = new Migration({ - conn: pool, - tableName: CONFIG.MIGRATIONS_TABLE, - silent: true, - dir: path.join(__dirname, '..', 'migrations'), -}) - -const initialize = async (): Promise => { - await migration.initialize() -} - -const resetDB = async (closePool = false): Promise => { - await migration.reset() // use for resetting database - if (closePool) pool.end() -} - -export { resetDB, pool, migration, initialize } diff --git a/database/src/index.ts b/database/src/index.ts index a9504063e..2d83bc52b 100644 --- a/database/src/index.ts +++ b/database/src/index.ts @@ -1,18 +1,28 @@ import 'reflect-metadata' -import prepare from './prepare' -import connection from './typeorm/connection' -import { resetDB, pool, migration } from './helpers' +import { createDatabase } from './prepare' +import CONFIG from './config' + +import { createPool, Pool } from 'mysql' +import { Migration } from 'ts-mysql-migrate' +import path from 'path' const run = async (command: string) => { // Database actions not supported by our migration library - await prepare() - - // Database connection for TypeORM - const con = await connection() - if (!con || !con.isConnected) { - throw new Error(`Couldn't open connection to database`) - } + await createDatabase() + const pool = createPool({ + host: CONFIG.DB_HOST, + port: CONFIG.DB_PORT, + user: CONFIG.DB_USER, + password: CONFIG.DB_PASSWORD, + database: CONFIG.DB_DATABASE, + }) + const migration = new Migration({ + conn: pool, + tableName: CONFIG.MIGRATIONS_TABLE, + silent: true, + dir: path.join(__dirname, '..', 'migrations'), + }) await migration.initialize() // Execute command @@ -25,14 +35,13 @@ const run = async (command: string) => { break case 'reset': // TODO protect from production - await resetDB() // use for resetting database + await migration.reset() break default: throw new Error(`Unsupported command ${command}`) } // Terminate connections gracefully - await con.close() pool.end() } diff --git a/database/src/prepare.ts b/database/src/prepare.ts index 440289aea..de47f7336 100644 --- a/database/src/prepare.ts +++ b/database/src/prepare.ts @@ -1,15 +1,8 @@ -/* PREPARE SCRIPT - * - * This file ensures operations our migration library - * can not take care of are done. - * This applies to all Database Operations like - * creating, deleting, renaming Databases. - */ +import { createConnection } from 'mysql2/promise' -import { createConnection, RowDataPacket } from 'mysql2/promise' import CONFIG from './config' -export default async (): Promise => { +const createDatabase = async (): Promise => { const con = await createConnection({ host: CONFIG.DB_HOST, port: CONFIG.DB_PORT, @@ -25,6 +18,8 @@ export default async (): Promise => { DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_unicode_ci;`) + /* LEGACY CODE + import { RowDataPacket } from 'mysql2/promise' // Check if old migration table is present, delete if needed const [rows] = await con.query(`SHOW TABLES FROM \`${CONFIG.DB_DATABASE}\` LIKE 'migrations';`) if ((rows).length > 0) { @@ -37,6 +32,9 @@ export default async (): Promise => { console.log('Found and dropped old migrations table') } } + */ await con.end() } + +export { createDatabase }