This commit is contained in:
Daniel Hougaard
2024-02-09 21:23:31 +04:00
parent f2c36c58f9
commit 8fd99855bd
3 changed files with 19 additions and 8 deletions

View File

@@ -1,31 +1,37 @@
import { Knex } from "knex";
import { TableName } from "../schemas";
import { ProjectVersion, TableName } from "../schemas";
export async function up(knex: Knex): Promise<void> {
if (!(await knex.schema.hasColumn(TableName.Users, "ghost"))) {
const hasGhostUserColumn = await knex.schema.hasColumn(TableName.Users, "ghost");
const hasProjectVersionColumn = await knex.schema.hasColumn(TableName.Project, "version");
if (!hasGhostUserColumn) {
await knex.schema.alterTable(TableName.Users, (t) => {
t.boolean("ghost").defaultTo(false).notNullable();
});
}
if (!(await knex.schema.hasColumn(TableName.Project, "e2ee"))) {
if (!hasProjectVersionColumn) {
await knex.schema.alterTable(TableName.Project, (t) => {
t.boolean("e2ee").defaultTo(true).notNullable();
t.string("version").defaultTo(ProjectVersion.V1).notNullable();
});
}
}
export async function down(knex: Knex): Promise<void> {
if (await knex.schema.hasColumn(TableName.Users, "ghost")) {
const hasGhostUserColumn = await knex.schema.hasColumn(TableName.Users, "ghost");
const hasProjectVersionColumn = await knex.schema.hasColumn(TableName.Project, "version");
if (hasGhostUserColumn) {
await knex.schema.alterTable(TableName.Users, (t) => {
t.dropColumn("ghost");
});
}
if (await knex.schema.hasColumn(TableName.Project, "e2ee")) {
if (hasProjectVersionColumn) {
await knex.schema.alterTable(TableName.Project, (t) => {
t.dropColumn("e2ee");
t.dropColumn("version");
});
}
}

View File

@@ -112,6 +112,11 @@ export enum SecretType {
Personal = "personal"
}
export enum ProjectVersion {
V1 = "v1",
V2 = "v2"
}
export enum IdentityAuthMethod {
Univeral = "universal-auth"
}

View File

@@ -15,7 +15,7 @@ export const ProjectsSchema = z.object({
orgId: z.string().uuid(),
createdAt: z.date(),
updatedAt: z.date(),
e2ee: z.boolean().default(true)
version: z.string().default("v1")
});
export type TProjects = z.infer<typeof ProjectsSchema>;