sequelize-typescript-migration
sequelize-typescript-migration copied to clipboard
Wrap table name in quotes for dialect: postgres
There is known issue with postresql. When table name is not wrapped in double quotes - postgres tries to find name in lower case. 'SELECT name FROM SequelizeMeta ORDER BY name desc limit 1' shows an error: relation "sequelizemeta" does not exist. But SequelizeMeta table exists.
Hot ugly fix that creates extra tables with lowercase: createMigrationTable.ts
import { Sequelize, DataType } from 'sequelize-typescript'
export default async (sequelize: Sequelize) => {
const queryInterface = sequelize.getQueryInterface()
await queryInterface.createTable('sequelizemeta', {
name: {
type: DataType.STRING,
allowNull: false,
unique: true,
primaryKey: true,
},
})
await queryInterface.createTable('sequelizemetamigrations', {
revision: {
type: DataType.INTEGER,
allowNull: false,
unique: true,
primaryKey: true,
},
name: {
type: DataType.STRING,
allowNull: false,
},
state: {
type: DataType.JSON,
allowNull: false,
},
})
}
Then in migration file add
await createMigrationTable(sequelize)
before
await SequelizeTypescriptMigration.makeMigration(sequelize, {