78 lines
2.0 KiB
JavaScript
78 lines
2.0 KiB
JavaScript
module.exports = {
|
|
async up(queryInterface, Sequelize) {
|
|
const transaction = await queryInterface.sequelize.transaction();
|
|
|
|
try {
|
|
const rows = await queryInterface.sequelize.query(
|
|
"SELECT to_regclass('public.\"usersCustom_permissionsPermissions\"') AS regclass_name;",
|
|
{
|
|
transaction,
|
|
type: Sequelize.QueryTypes.SELECT,
|
|
},
|
|
);
|
|
const tableName = rows[0].regclass_name;
|
|
|
|
if (tableName) {
|
|
await transaction.commit();
|
|
return;
|
|
}
|
|
|
|
await queryInterface.createTable(
|
|
'usersCustom_permissionsPermissions',
|
|
{
|
|
createdAt: {
|
|
type: Sequelize.DataTypes.DATE,
|
|
allowNull: false,
|
|
},
|
|
updatedAt: {
|
|
type: Sequelize.DataTypes.DATE,
|
|
allowNull: false,
|
|
},
|
|
users_custom_permissionsId: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
allowNull: false,
|
|
primaryKey: true,
|
|
},
|
|
permissionId: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
allowNull: false,
|
|
primaryKey: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await transaction.commit();
|
|
} catch (err) {
|
|
await transaction.rollback();
|
|
throw err;
|
|
}
|
|
},
|
|
|
|
async down(queryInterface, Sequelize) {
|
|
const transaction = await queryInterface.sequelize.transaction();
|
|
|
|
try {
|
|
const rows = await queryInterface.sequelize.query(
|
|
"SELECT to_regclass('public.\"usersCustom_permissionsPermissions\"') AS regclass_name;",
|
|
{
|
|
transaction,
|
|
type: Sequelize.QueryTypes.SELECT,
|
|
},
|
|
);
|
|
const tableName = rows[0].regclass_name;
|
|
|
|
if (!tableName) {
|
|
await transaction.commit();
|
|
return;
|
|
}
|
|
|
|
await queryInterface.dropTable('usersCustom_permissionsPermissions', { transaction });
|
|
await transaction.commit();
|
|
} catch (err) {
|
|
await transaction.rollback();
|
|
throw err;
|
|
}
|
|
},
|
|
};
|