add testimony migration
This commit is contained in:
@@ -2007,6 +2007,86 @@
|
|||||||
},
|
},
|
||||||
"nativeEnums": {}
|
"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": {
|
"columns": {
|
||||||
"id": {
|
"id": {
|
||||||
@@ -3511,6 +3591,9 @@
|
|||||||
"partner:create",
|
"partner:create",
|
||||||
"partner:update",
|
"partner:update",
|
||||||
"partner:delete",
|
"partner:delete",
|
||||||
|
"testimony:create",
|
||||||
|
"testimony:update",
|
||||||
|
"testimony:delete",
|
||||||
"tag:create",
|
"tag:create",
|
||||||
"tag:update",
|
"tag:update",
|
||||||
"tag:delete",
|
"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