ff-admin-server/src/data-source.ts
2025-06-08 07:55:20 +02:00

145 lines
5.7 KiB
TypeScript

import "dotenv/config";
import "reflect-metadata";
import { DataSource } from "typeorm";
import { configCheck, DB_HOST, DB_NAME, DB_PASSWORD, DB_PORT, DB_USERNAME } 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 { memberEducations } from "./entity/club/member/memberEducations";
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 { membershipTotalView, 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 { setting } from "./entity/management/setting";
import { education } from "./entity/configuration/education";
import { equipmentType } from "./entity/unit/equipment/equipmentType";
import { equipment } from "./entity/unit/equipment/equipment";
import { vehicleType } from "./entity/unit/vehicle/vehicleType";
import { vehicle } from "./entity/unit/vehicle/vehicle";
import { wearableType } from "./entity/unit/wearable/wearableType";
import { wearable } from "./entity/unit/wearable/wearable";
import { damageReport } from "./entity/unit/damageReport";
import { inspectionPlan } from "./entity/unit/inspection/inspectionPlan";
import { inspectionVersionedPlan } from "./entity/unit/inspection/inspectionVersionedPlan";
import { inspectionPoint } from "./entity/unit/inspection/inspectionPoint";
import { inspection } from "./entity/unit/inspection/inspection";
import { inspectionPointResult } from "./entity/unit/inspection/inspectionPointResult";
import { maintenance } from "./entity/unit/maintenance";
import { BackupAndResetDatabase1749296262915 } from "./migrations/1749296262915-BackupAndResetDatabase";
import { CreateSchema1749296280721 } from "./migrations/1749296280721-CreateSchema";
import { UnitBase1749361405703 } from "./migrations/1749361405703-UnitBase";
configCheck();
const dataSource = new DataSource({
type: "postgres",
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"],
entities: [
user,
refresh,
invite,
reset,
userPermission,
role,
rolePermission,
award,
communication,
communicationType,
executivePosition,
membershipStatus,
education,
qualification,
salutation,
member,
memberAwards,
memberExecutivePositions,
memberQualifications,
membership,
memberEducations,
protocol,
protocolAgenda,
protocolDecision,
protocolPresence,
protocolVoting,
protocolPrintout,
calendar,
calendarType,
query,
template,
templateUsage,
newsletter,
newsletterDates,
newsletterRecipients,
newsletterConfig,
memberView,
memberExecutivePositionsView,
memberQualificationsView,
membershipView,
membershipTotalView,
webapi,
webapiPermission,
setting,
equipmentType,
equipment,
vehicleType,
vehicle,
wearableType,
wearable,
damageReport,
maintenance,
inspectionPlan,
inspectionVersionedPlan,
inspectionPoint,
inspection,
inspectionPointResult,
],
migrations: [BackupAndResetDatabase1749296262915, CreateSchema1749296280721, UnitBase1749361405703],
migrationsRun: true,
migrationsTransactionMode: "each",
subscribers: [],
});
export { dataSource };