mirror of
https://github.com/n8n-io/n8n.git
synced 2024-09-20 23:07:32 -07:00
37a6e329af
* 🚚 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>
48 lines
1.6 KiB
TypeScript
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}`,
|
|
);
|
|
}
|
|
};
|