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/user/user"; import { refresh } from "./entity/refresh"; import { invite } from "./entity/user/invite"; import { userPermission } from "./entity/user/user_permission"; import { role } from "./entity/user/role"; import { rolePermission } from "./entity/user/role_permission"; import { award } from "./entity/settings/award"; import { communication } from "./entity/club/member/communication"; import { communicationType } from "./entity/settings/communicationType"; import { executivePosition } from "./entity/settings/executivePosition"; import { membershipStatus } from "./entity/settings/membershipStatus"; import { qualification } from "./entity/settings/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/settings/calendarType"; import { reset } from "./entity/reset"; import { query } from "./entity/settings/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/settings/template"; import { templateUsage } from "./entity/settings/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/settings/newsletterConfig"; import { webapi } from "./entity/user/webapi"; import { webapiPermission } from "./entity/user/webapi_permission"; import { salutation } from "./entity/settings/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 };