fix: migrations and discontinue sqlite
This commit is contained in:
parent
c4e547b288
commit
c35b99e0c4
6 changed files with 37 additions and 33 deletions
|
@ -1,4 +1,4 @@
|
||||||
DB_TYPE = (mysql|sqlite|postgres) # default ist mysql
|
DB_TYPE = (mysql|postgres) # default ist mysql
|
||||||
|
|
||||||
## BSP für mysql
|
## BSP für mysql
|
||||||
DB_PORT = 3306
|
DB_PORT = 3306
|
||||||
|
@ -14,9 +14,6 @@ DB_NAME = database_name
|
||||||
DB_USERNAME = database_username
|
DB_USERNAME = database_username
|
||||||
DB_PASSWORD = database_password
|
DB_PASSWORD = database_password
|
||||||
|
|
||||||
## BSP für sqlite
|
|
||||||
DB_HOST = filename.db
|
|
||||||
|
|
||||||
## Dev only
|
## Dev only
|
||||||
SERVER_PORT = portnumber
|
SERVER_PORT = portnumber
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
import { dataSource } from "../../../data-source";
|
import { dataSource } from "../../../data-source";
|
||||||
import { setting } from "../../../entity/management/setting";
|
import { setting } from "../../../entity/management/setting";
|
||||||
import DatabaseActionException from "../../../exceptions/databaseActionException";
|
import DatabaseActionException from "../../../exceptions/databaseActionException";
|
||||||
import { StringHelper } from "../../../helpers/stringHelper";
|
|
||||||
import { CreateOrUpdateSettingCommand, DeleteSettingCommand } from "./settingCommand";
|
import { CreateOrUpdateSettingCommand, DeleteSettingCommand } from "./settingCommand";
|
||||||
|
|
||||||
export default abstract class SettingCommandHandler {
|
export default abstract class SettingCommandHandler {
|
||||||
|
@ -11,8 +10,6 @@ export default abstract class SettingCommandHandler {
|
||||||
* @returns {Promise<string>}
|
* @returns {Promise<string>}
|
||||||
*/
|
*/
|
||||||
static async create(createSetting: CreateOrUpdateSettingCommand): Promise<string> {
|
static async create(createSetting: CreateOrUpdateSettingCommand): Promise<string> {
|
||||||
const token = StringHelper.random(32);
|
|
||||||
|
|
||||||
return await dataSource
|
return await dataSource
|
||||||
.createQueryBuilder()
|
.createQueryBuilder()
|
||||||
.insert()
|
.insert()
|
||||||
|
@ -25,7 +22,7 @@ export default abstract class SettingCommandHandler {
|
||||||
.orUpdate(["value"], ["topic", "key"])
|
.orUpdate(["value"], ["topic", "key"])
|
||||||
.execute()
|
.execute()
|
||||||
.then((result) => {
|
.then((result) => {
|
||||||
return token;
|
return createSetting.value;
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
throw new DatabaseActionException("CREATE OR UPDATE", "setting", err);
|
throw new DatabaseActionException("CREATE OR UPDATE", "setting", err);
|
||||||
|
|
|
@ -54,6 +54,7 @@ import { NewsletterColumnType1744351418751 } from "./migrations/1744351418751-ne
|
||||||
import { QueryUpdatedAt1744795756230 } from "./migrations/1744795756230-QueryUpdatedAt";
|
import { QueryUpdatedAt1744795756230 } from "./migrations/1744795756230-QueryUpdatedAt";
|
||||||
import { SettingsFromEnv1745059495808 } from "./migrations/1745059495808-settingsFromEnv";
|
import { SettingsFromEnv1745059495808 } from "./migrations/1745059495808-settingsFromEnv";
|
||||||
import { MemberCreatedAt1746006549262 } from "./migrations/1746006549262-memberCreatedAt";
|
import { MemberCreatedAt1746006549262 } from "./migrations/1746006549262-memberCreatedAt";
|
||||||
|
import { UserLoginRoutine1746252454922 } from "./migrations/1746252454922-UserLoginRoutine";
|
||||||
|
|
||||||
const dataSource = new DataSource({
|
const dataSource = new DataSource({
|
||||||
type: DB_TYPE as any,
|
type: DB_TYPE as any,
|
||||||
|
@ -116,6 +117,7 @@ const dataSource = new DataSource({
|
||||||
NewsletterColumnType1744351418751,
|
NewsletterColumnType1744351418751,
|
||||||
QueryUpdatedAt1744795756230,
|
QueryUpdatedAt1744795756230,
|
||||||
SettingsFromEnv1745059495808,
|
SettingsFromEnv1745059495808,
|
||||||
|
SettingsFromEnv_SET1745059495808,
|
||||||
MemberCreatedAt1746006549262,
|
MemberCreatedAt1746006549262,
|
||||||
],
|
],
|
||||||
migrationsRun: true,
|
migrationsRun: true,
|
||||||
|
|
|
@ -39,15 +39,11 @@ export const TRUST_PROXY = ((): Array<string> | string | boolean | number | null
|
||||||
})();
|
})();
|
||||||
|
|
||||||
export function configCheck() {
|
export function configCheck() {
|
||||||
if (DB_TYPE != "mysql" && DB_TYPE != "sqlite" && DB_TYPE != "postgres")
|
if (DB_TYPE != "mysql" && DB_TYPE != "postgres") throw new Error("set valid value to DB_TYPE (mysql|postgres)");
|
||||||
throw new Error("set valid value to DB_TYPE (mysql|sqlite|postgres)");
|
if (DB_HOST == "" || typeof DB_HOST != "string") throw new Error("set valid value to DB_HOST");
|
||||||
if ((DB_HOST == "" || typeof DB_HOST != "string") && DB_TYPE != "sqlite")
|
|
||||||
throw new Error("set valid value to DB_HOST");
|
|
||||||
if (DB_NAME == "" || typeof DB_NAME != "string") throw new Error("set valid value to DB_NAME");
|
if (DB_NAME == "" || typeof DB_NAME != "string") throw new Error("set valid value to DB_NAME");
|
||||||
if ((DB_USERNAME == "" || typeof DB_USERNAME != "string") && DB_TYPE != "sqlite")
|
if (DB_USERNAME == "" || typeof DB_USERNAME != "string") throw new Error("set valid value to DB_USERNAME");
|
||||||
throw new Error("set valid value to DB_USERNAME");
|
if (DB_PASSWORD == "" || typeof DB_PASSWORD != "string") throw new Error("set valid value to DB_PASSWORD");
|
||||||
if ((DB_PASSWORD == "" || typeof DB_PASSWORD != "string") && DB_TYPE != "sqlite")
|
|
||||||
throw new Error("set valid value to DB_PASSWORD");
|
|
||||||
|
|
||||||
if (isNaN(SERVER_PORT)) throw new Error("set valid numeric value to SERVER_PORT");
|
if (isNaN(SERVER_PORT)) throw new Error("set valid numeric value to SERVER_PORT");
|
||||||
|
|
||||||
|
|
|
@ -8,23 +8,6 @@ export class SettingsFromEnv1745059495808 implements MigrationInterface {
|
||||||
|
|
||||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
await queryRunner.createTable(setting_table, true, true, true);
|
await queryRunner.createTable(setting_table, true, true, true);
|
||||||
|
|
||||||
//transfer settings of env to database
|
|
||||||
await SettingHelper.setSetting("club.name", process.env.CLUB_NAME);
|
|
||||||
await SettingHelper.setSetting("club.website", process.env.CLUB_WEBSITE);
|
|
||||||
await SettingHelper.setSetting("session.jwt_expiration", process.env.JWT_EXPIRATION as ms.StringValue);
|
|
||||||
await SettingHelper.setSetting("session.refresh_expiration", process.env.REFRESH_EXPIRATION as ms.StringValue);
|
|
||||||
await SettingHelper.setSetting(
|
|
||||||
"session.pwa_refresh_expiration",
|
|
||||||
process.env.PWA_REFRESH_EXPIRATION as ms.StringValue
|
|
||||||
);
|
|
||||||
await SettingHelper.setSetting("mail.username", process.env.MAIL_USERNAME);
|
|
||||||
await SettingHelper.setSetting("mail.password", process.env.MAIL_PASSWORD);
|
|
||||||
await SettingHelper.setSetting("mail.host", process.env.MAIL_HOST);
|
|
||||||
await SettingHelper.setSetting("mail.port", Number(process.env.MAIL_PORT));
|
|
||||||
await SettingHelper.setSetting("mail.secure", Boolean(process.env.MAIL_SECURE));
|
|
||||||
await SettingHelper.setSetting("backup.interval", Number(process.env.BACKUP_INTERVAL));
|
|
||||||
await SettingHelper.setSetting("backup.copies", Number(process.env.BACKUP_COPIES));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
|
29
src/migrations/1745059495808-settingsFromEnv_set.ts
Normal file
29
src/migrations/1745059495808-settingsFromEnv_set.ts
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||||
|
import { setting_table } from "./baseSchemaTables/admin";
|
||||||
|
import SettingHelper from "../helpers/settingsHelper";
|
||||||
|
import ms from "ms";
|
||||||
|
|
||||||
|
export class SettingsFromEnv_SET1745059495808 implements MigrationInterface {
|
||||||
|
name = "SettingsFromEnv_SET1745059495808";
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
// transfer settings of env to database
|
||||||
|
await SettingHelper.setSetting("club.name", process.env.CLUB_NAME);
|
||||||
|
await SettingHelper.setSetting("club.website", process.env.CLUB_WEBSITE);
|
||||||
|
await SettingHelper.setSetting("session.jwt_expiration", process.env.JWT_EXPIRATION as ms.StringValue);
|
||||||
|
await SettingHelper.setSetting("session.refresh_expiration", process.env.REFRESH_EXPIRATION as ms.StringValue);
|
||||||
|
await SettingHelper.setSetting(
|
||||||
|
"session.pwa_refresh_expiration",
|
||||||
|
process.env.PWA_REFRESH_EXPIRATION as ms.StringValue
|
||||||
|
);
|
||||||
|
await SettingHelper.setSetting("mail.username", process.env.MAIL_USERNAME);
|
||||||
|
await SettingHelper.setSetting("mail.password", process.env.MAIL_PASSWORD);
|
||||||
|
await SettingHelper.setSetting("mail.host", process.env.MAIL_HOST);
|
||||||
|
await SettingHelper.setSetting("mail.port", Number(process.env.MAIL_PORT ?? "578"));
|
||||||
|
await SettingHelper.setSetting("mail.secure", Boolean(process.env.MAIL_SECURE ?? "false"));
|
||||||
|
await SettingHelper.setSetting("backup.interval", Number(process.env.BACKUP_INTERVAL ?? "1"));
|
||||||
|
await SettingHelper.setSetting("backup.copies", Number(process.env.BACKUP_COPIES ?? "7"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue