mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-19 22:20:36 +00:00
39 lines
1.3 KiB
TypeScript
39 lines
1.3 KiB
TypeScript
import { Knex } from "knex";
|
|
|
|
import { TableName } from "@app/db/schemas";
|
|
|
|
export async function up(knex: Knex): Promise<void> {
|
|
const hasEditNoteCol = await knex.schema.hasColumn(TableName.AccessApprovalRequest, "editNote");
|
|
const hasEditedByUserId = await knex.schema.hasColumn(TableName.AccessApprovalRequest, "editedByUserId");
|
|
|
|
if (!hasEditNoteCol || !hasEditedByUserId) {
|
|
await knex.schema.alterTable(TableName.AccessApprovalRequest, (t) => {
|
|
if (!hasEditedByUserId) {
|
|
t.uuid("editedByUserId").nullable();
|
|
t.foreign("editedByUserId").references("id").inTable(TableName.Users).onDelete("SET NULL");
|
|
}
|
|
|
|
if (!hasEditNoteCol) {
|
|
t.string("editNote").nullable();
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
export async function down(knex: Knex): Promise<void> {
|
|
const hasEditNoteCol = await knex.schema.hasColumn(TableName.AccessApprovalRequest, "editNote");
|
|
const hasEditedByUserId = await knex.schema.hasColumn(TableName.AccessApprovalRequest, "editedByUserId");
|
|
|
|
if (hasEditNoteCol || hasEditedByUserId) {
|
|
await knex.schema.alterTable(TableName.AccessApprovalRequest, (t) => {
|
|
if (hasEditedByUserId) {
|
|
t.dropColumn("editedByUserId");
|
|
}
|
|
|
|
if (hasEditNoteCol) {
|
|
t.dropColumn("editNote");
|
|
}
|
|
});
|
|
}
|
|
}
|