ff-admin-server/src/data-source.ts

109 lines
4.2 KiB
TypeScript

import "dotenv/config";
import "reflect-metadata";
import { DataSource } from "typeorm";
import { DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME, DB_TYPE, DB_PORT } from "./env.defaults";
import { user } from "./entity/management/user";
import { refresh } from "./entity/refresh";
import { invite } from "./entity/management/invite";
import { userPermission } from "./entity/management/user_permission";
import { role } from "./entity/management/role";
import { rolePermission } from "./entity/management/role_permission";
import { award } from "./entity/configuration/award";
import { communication } from "./entity/club/member/communication";
import { communicationType } from "./entity/configuration/communicationType";
import { executivePosition } from "./entity/configuration/executivePosition";
import { membershipStatus } from "./entity/configuration/membershipStatus";
import { qualification } from "./entity/configuration/qualification";
import { member } from "./entity/club/member/member";
import { memberAwards } from "./entity/club/member/memberAwards";
import { memberExecutivePositions } from "./entity/club/member/memberExecutivePositions";
import { memberQualifications } from "./entity/club/member/memberQualifications";
import { membership } from "./entity/club/member/membership";
import { protocol } from "./entity/club/protocol/protocol";
import { protocolAgenda } from "./entity/club/protocol/protocolAgenda";
import { protocolDecision } from "./entity/club/protocol/protocolDecision";
import { protocolPresence } from "./entity/club/protocol/protocolPresence";
import { protocolVoting } from "./entity/club/protocol/protocolVoting";
import { protocolPrintout } from "./entity/club/protocol/protocolPrintout";
import { calendar } from "./entity/club/calendar";
import { calendarType } from "./entity/configuration/calendarType";
import { reset } from "./entity/reset";
import { query } from "./entity/configuration/query";
import { memberView } from "./views/memberView";
import { memberExecutivePositionsView } from "./views/memberExecutivePositionView";
import { memberQualificationsView } from "./views/memberQualificationsView";
import { membershipView } from "./views/membershipsView";
import { template } from "./entity/configuration/template";
import { templateUsage } from "./entity/configuration/templateUsage";
import { newsletter } from "./entity/club/newsletter/newsletter";
import { newsletterDates } from "./entity/club/newsletter/newsletterDates";
import { newsletterRecipients } from "./entity/club/newsletter/newsletterRecipients";
import { newsletterConfig } from "./entity/configuration/newsletterConfig";
import { webapi } from "./entity/management/webapi";
import { webapiPermission } from "./entity/management/webapi_permission";
import { salutation } from "./entity/configuration/salutation";
import { BackupAndResetDatabase1738166124200 } from "./migrations/1738166124200-BackupAndResetDatabase";
import { CreateSchema1738166167472 } from "./migrations/1738166167472-CreateSchema";
const dataSource = new DataSource({
type: DB_TYPE as any,
host: DB_HOST,
port: DB_PORT,
username: DB_USERNAME,
password: DB_PASSWORD,
database: DB_NAME,
synchronize: false,
logging: process.env.NODE_ENV ? true : ["schema", "error", "warn", "log", "migration"],
bigNumberStrings: false,
entities: [
user,
refresh,
invite,
reset,
userPermission,
role,
rolePermission,
award,
communication,
communicationType,
executivePosition,
membershipStatus,
qualification,
salutation,
member,
memberAwards,
memberExecutivePositions,
memberQualifications,
membership,
protocol,
protocolAgenda,
protocolDecision,
protocolPresence,
protocolVoting,
protocolPrintout,
calendar,
calendarType,
query,
template,
templateUsage,
newsletter,
newsletterDates,
newsletterRecipients,
newsletterConfig,
memberView,
memberExecutivePositionsView,
memberQualificationsView,
membershipView,
webapi,
webapiPermission,
],
migrations: [BackupAndResetDatabase1738166124200, CreateSchema1738166167472],
migrationsRun: true,
migrationsTransactionMode: "each",
subscribers: [],
});
export { dataSource };