SettingsHelper

This commit is contained in:
Julian Krauser 2025-04-19 11:26:35 +02:00
parent f850fc2526
commit f32143b7ac
15 changed files with 199 additions and 49 deletions

View file

@ -2,13 +2,16 @@ import { MigrationInterface, QueryRunner, Table } from "typeorm";
import BackupHelper from "../helpers/backupHelper";
import { getDefaultByORM, getTypeByORM, isIncrementPrimary } from "./ormHelper";
import InternalException from "../exceptions/internalException";
import { DB_TYPE } from "../env.defaults";
import { SettingHelper } from "../helpers/settingsHelper";
export class BackupAndResetDatabase1738166124200 implements MigrationInterface {
name = "BackupAndResetDatabase1738166124200";
public async up(queryRunner: QueryRunner): Promise<void> {
let query = DB_TYPE == "postgres" ? "SELECT name FROM migrations" : "SELECT `name` FROM `migrations`";
let query =
SettingHelper.getEnvSetting("database.type") == "postgres"
? "SELECT name FROM migrations"
: "SELECT `name` FROM `migrations`";
let migrations = await queryRunner.query(query);
if (
(await queryRunner.hasTable("user")) &&

View file

@ -54,7 +54,7 @@ import {
newsletter_recipients_table,
newsletter_table,
} from "./baseSchemaTables/newsletter";
import { DB_TYPE } from "../env.defaults";
import { SettingHelper } from "../helpers/settingsHelper";
export class CreateSchema1738166167472 implements MigrationInterface {
name = "CreateSchema1738166167472";
@ -84,6 +84,7 @@ export class CreateSchema1738166167472 implements MigrationInterface {
await queryRunner.createTable(member_executive_positions_table, true, true, true);
await queryRunner.createTable(member_qualifications_table, true, true, true);
const DB_TYPE = SettingHelper.getEnvSetting("database.type");
if (DB_TYPE == "postgres") await queryRunner.createView(member_view_postgres, true);
else if (DB_TYPE == "mysql") await queryRunner.createView(member_view_mysql, true);
else if (DB_TYPE == "sqlite") await queryRunner.createView(member_view_sqlite, true);

View file

@ -1,3 +1,5 @@
import { SettingHelper } from "../helpers/settingsHelper";
export type ORMType = "int" | "bigint" | "boolean" | "date" | "datetime" | "time" | "text" | "varchar" | "uuid";
export type ORMDefault = "currentTimestamp" | "string" | "boolean" | "number" | "null";
export type ColumnConfig = {
@ -13,7 +15,7 @@ export type Primary = {
};
export function getTypeByORM(type: ORMType, nullable: boolean = false, length: number = 255): ColumnConfig {
const dbType = process.env.DB_TYPE;
const dbType = SettingHelper.getEnvSetting("database.type");
const typeMap: Record<string, Record<ORMType, string>> = {
mysql: {
@ -63,7 +65,7 @@ export function getTypeByORM(type: ORMType, nullable: boolean = false, length: n
}
export function getDefaultByORM<T = string | null>(type: ORMDefault, data?: string | number | boolean): T {
const dbType = process.env.DB_TYPE;
const dbType = SettingHelper.getEnvSetting("database.type");
const typeMap: Record<string, Record<ORMDefault, string | null>> = {
mysql: {