-import * as path from 'path'
+import { readdir } from 'fs-extra'
+import { join } from 'path'
+import { QueryTypes } from 'sequelize'
import { logger } from '../helpers/logger'
import { LAST_MIGRATION_VERSION } from './constants'
import { sequelizeTypescript } from './database'
-import { readdir } from 'fs-extra'
async function migrate () {
const tables = await sequelizeTypescript.getQueryInterface().showAllTables()
let actualVersion: number | null = null
- const [ rows ] = await sequelizeTypescript.query('SELECT "migrationVersion" FROM "application"')
- if (rows && rows[0] && rows[0].migrationVersion) {
+ const query = 'SELECT "migrationVersion" FROM "application"'
+ const options = {
+ type: QueryTypes.SELECT as QueryTypes.SELECT
+ }
+
+ const rows = await sequelizeTypescript.query<{ migrationVersion: number }>(query, options)
+ if (rows?.[0]?.migrationVersion) {
actualVersion = rows[0].migrationVersion
}
// ---------------------------------------------------------------------------
async function getMigrationScripts () {
- const files = await readdir(path.join(__dirname, 'migrations'))
+ const files = await readdir(join(__dirname, 'migrations'))
const filesToMigrate: {
- version: string,
+ version: string
script: string
}[] = []
const migrationScriptName = entity.script
logger.info('Executing %s migration script.', migrationScriptName)
- const migrationScript = require(path.join(__dirname, 'migrations', migrationScriptName))
+ const migrationScript = require(join(__dirname, 'migrations', migrationScriptName))
return sequelizeTypescript.transaction(async t => {
const options = {