add testimony migration
This commit is contained in:
@@ -2007,6 +2007,86 @@
|
||||
},
|
||||
"nativeEnums": {}
|
||||
},
|
||||
{
|
||||
"columns": {
|
||||
"id": {
|
||||
"name": "id",
|
||||
"type": "varchar(30)",
|
||||
"unsigned": false,
|
||||
"autoincrement": false,
|
||||
"primary": false,
|
||||
"nullable": false,
|
||||
"length": 30,
|
||||
"mappedType": "string"
|
||||
},
|
||||
"review": {
|
||||
"name": "review",
|
||||
"type": "varchar(200)",
|
||||
"unsigned": false,
|
||||
"autoincrement": false,
|
||||
"primary": false,
|
||||
"nullable": false,
|
||||
"length": 200,
|
||||
"mappedType": "string"
|
||||
},
|
||||
"reviewer": {
|
||||
"name": "reviewer",
|
||||
"type": "varchar(100)",
|
||||
"unsigned": false,
|
||||
"autoincrement": false,
|
||||
"primary": false,
|
||||
"nullable": false,
|
||||
"length": 100,
|
||||
"mappedType": "string"
|
||||
},
|
||||
"rating": {
|
||||
"name": "rating",
|
||||
"type": "int",
|
||||
"unsigned": false,
|
||||
"autoincrement": false,
|
||||
"primary": false,
|
||||
"nullable": false,
|
||||
"mappedType": "integer"
|
||||
},
|
||||
"created_at": {
|
||||
"name": "created_at",
|
||||
"type": "timestamptz",
|
||||
"unsigned": false,
|
||||
"autoincrement": false,
|
||||
"primary": false,
|
||||
"nullable": false,
|
||||
"length": 6,
|
||||
"mappedType": "datetime"
|
||||
},
|
||||
"updated_at": {
|
||||
"name": "updated_at",
|
||||
"type": "timestamptz",
|
||||
"unsigned": false,
|
||||
"autoincrement": false,
|
||||
"primary": false,
|
||||
"nullable": false,
|
||||
"length": 6,
|
||||
"mappedType": "datetime"
|
||||
}
|
||||
},
|
||||
"name": "testimony",
|
||||
"schema": "public",
|
||||
"indexes": [
|
||||
{
|
||||
"keyName": "testimony_pkey",
|
||||
"columnNames": [
|
||||
"id"
|
||||
],
|
||||
"composite": false,
|
||||
"constraint": true,
|
||||
"primary": true,
|
||||
"unique": true
|
||||
}
|
||||
],
|
||||
"checks": [],
|
||||
"foreignKeys": {},
|
||||
"nativeEnums": {}
|
||||
},
|
||||
{
|
||||
"columns": {
|
||||
"id": {
|
||||
@@ -3511,6 +3591,9 @@
|
||||
"partner:create",
|
||||
"partner:update",
|
||||
"partner:delete",
|
||||
"testimony:create",
|
||||
"testimony:update",
|
||||
"testimony:delete",
|
||||
"tag:create",
|
||||
"tag:update",
|
||||
"tag:delete",
|
||||
|
||||
91
src/database/migrations/Migration20251208034953.ts
Normal file
91
src/database/migrations/Migration20251208034953.ts
Normal file
@@ -0,0 +1,91 @@
|
||||
import { Migration } from "@mikro-orm/migrations";
|
||||
|
||||
export class Migration20251208034953 extends Migration {
|
||||
override async up(): Promise<void> {
|
||||
const knex = this.getKnex();
|
||||
|
||||
await knex.schema.createTable("testimonies", (table) => {
|
||||
// Columns
|
||||
table.string("id", 30).notNullable();
|
||||
table.string("review", 200).notNullable();
|
||||
table.string("reviewer", 100).notNullable();
|
||||
table.integer("rating").notNullable();
|
||||
table.timestamp("created_at", { useTz: true }).notNullable();
|
||||
table.timestamp("updated_at", { useTz: true }).notNullable();
|
||||
// Constraints
|
||||
table.primary(["id"], { constraintName: "testimonies_pkey" });
|
||||
});
|
||||
|
||||
await knex.raw(`
|
||||
alter type "admin_permission" add value if not exists 'testimony:create';
|
||||
alter type "admin_permission" add value if not exists 'testimony:update';
|
||||
alter type "admin_permission" add value if not exists 'testimony:delete';
|
||||
`);
|
||||
}
|
||||
|
||||
override async down(): Promise<void> {
|
||||
const knex = this.getKnex();
|
||||
|
||||
await knex.schema.dropTable("testimonies");
|
||||
|
||||
await knex.raw(`
|
||||
update "admin" set "permissions" = array_remove("permissions", 'testimony:create'::"admin_permission") where 'testimony:create' = any("permissions");
|
||||
update "admin" set "permissions" = array_remove("permissions", 'testimony:update'::"admin_permission") where 'testimony:update' = any("permissions");
|
||||
update "admin" set "permissions" = array_remove("permissions", 'testimony:delete'::"admin_permission") where 'testimony:delete' = any("permissions");
|
||||
|
||||
alter type "admin_permission" rename to "admin_permission_old";
|
||||
|
||||
create type "admin_permission" as enum (
|
||||
'country:create',
|
||||
'country:update',
|
||||
'country:delete',
|
||||
'city:create',
|
||||
'city:update',
|
||||
'city:delete',
|
||||
'airline:create',
|
||||
'airline:update',
|
||||
'airline:delete',
|
||||
'airport:create',
|
||||
'airport:update',
|
||||
'airport:delete',
|
||||
'flight:create',
|
||||
'flight:update',
|
||||
'flight:delete',
|
||||
'flight-class:create',
|
||||
'flight-class:update',
|
||||
'flight-class:delete',
|
||||
'hotel-facility:create',
|
||||
'hotel-facility:update',
|
||||
'hotel-facility:delete',
|
||||
'hotel:create',
|
||||
'hotel:update',
|
||||
'hotel:delete',
|
||||
'transportation:create',
|
||||
'transportation:update',
|
||||
'transportation:delete',
|
||||
'transportation-class:create',
|
||||
'transportation-class:update',
|
||||
'transportation-class:delete',
|
||||
'package:create',
|
||||
'package:update',
|
||||
'package:delete',
|
||||
'package-detail:create',
|
||||
'package-detail:update',
|
||||
'package-detail:delete',
|
||||
'admin:create',
|
||||
'admin:update',
|
||||
'admin:delete',
|
||||
'partner:create',
|
||||
'partner:update',
|
||||
'partner:delete',
|
||||
'tag:create',
|
||||
'tag:update',
|
||||
'tag:delete'
|
||||
);
|
||||
|
||||
alter table "admin" alter column "permissions" type "admin_permission"[] using "permissions"::text[]::"admin_permission"[];
|
||||
|
||||
drop type "admin_permission_old";
|
||||
`);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user