29 lines
705 B
TypeScript
29 lines
705 B
TypeScript
import "reflect-metadata";
|
|
import { DataSource } from "typeorm";
|
|
import { User } from "./entities/User";
|
|
import { Review } from "./entities/Review";
|
|
import { Saved } from "./entities/Saved";
|
|
import { Hazard } from "./entities/Hazard";
|
|
import { Store } from "./entities/Stores";
|
|
|
|
let db: DataSource | null = null;
|
|
|
|
export function getDb(forceSync = false): DataSource {
|
|
if (!db) {
|
|
db = new DataSource({
|
|
type: "postgres",
|
|
url: process.env.DATABASE_URL,
|
|
synchronize: process.argv.includes("sync") || forceSync,
|
|
entities: [User, Review, Saved, Hazard, Store],
|
|
});
|
|
}
|
|
return db;
|
|
}
|
|
|
|
export async function initDb() {
|
|
const db = getDb();
|
|
if (!db.isInitialized) {
|
|
await db.initialize();
|
|
}
|
|
}
|