n8n/packages/cli/test/teardown.ts
Iván Ovejero 37a6e329af
🔨 Infer typings for config schema (#2656)
* 🚚 Move schema to standalone file

*  Add assertions to string literal arrays

*  Infer typings for convict schema

* 🔥 Remove unneeded assertions

* 🔨 Fix errors surfaced by typings

*  Type nodes.include/exclude per docs

*  Account for types for exception paths

*  Set method alias to flag incorrect paths

*  Replace original with alias

*  Make allowance for nodes.include

*  Adjust leftover calls

* 🔀 Fix conflicts

* 🔥 Remove unneeded castings

* 📘 Simplify exception path type

* 📦 Update package-lock.json

* 🔥 Remove unneeded imports

* 🔥 Remove unrelated file

*  Update schema

*  Update interface

* 📦 Update package-lock.json

* 📦 Update package-lock.json

* 🔥 Remove leftover assertions

Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-04-08 19:37:27 +02:00

48 lines
1.6 KiB
TypeScript

import { createConnection } from 'typeorm';
import config = require('../config');
import { exec } from 'child_process';
import { getBootstrapMySqlOptions, getBootstrapPostgresOptions } from './integration/shared/testDb';
import { BOOTSTRAP_MYSQL_CONNECTION_NAME } from './integration/shared/constants';
export default async () => {
const dbType = config.getEnv('database.type');
if (dbType === 'postgresdb') {
const bootstrapPostgres = await createConnection(getBootstrapPostgresOptions());
const results: { db_name: string }[] = await bootstrapPostgres.query(
'SELECT datname as db_name FROM pg_database;',
);
const promises = results
.filter(({ db_name: dbName }) => dbName.startsWith('pg_') && dbName.endsWith('_n8n_test'))
.map(({ db_name: dbName }) => bootstrapPostgres.query(`DROP DATABASE ${dbName};`));
await Promise.all(promises);
bootstrapPostgres.close();
}
if (dbType === 'mysqldb') {
const user = config.getEnv('database.mysqldb.user');
const password = config.getEnv('database.mysqldb.password');
const host = config.getEnv('database.mysqldb.host');
const bootstrapMySql = await createConnection(getBootstrapMySqlOptions());
const results: { Database: string }[] = await bootstrapMySql.query('SHOW DATABASES;');
const promises = results
.filter(({ Database: dbName }) => dbName.startsWith('mysql_') && dbName.endsWith('_n8n_test'))
.map(({ Database: dbName }) => bootstrapMySql.query(`DROP DATABASE ${dbName};`));
await Promise.all(promises);
await bootstrapMySql.close();
exec(
`echo "DROP DATABASE ${BOOTSTRAP_MYSQL_CONNECTION_NAME}" | mysql -h ${host} -u ${user} -p${password}`,
);
}
};