|
|
@ -1,7 +1,7 @@ |
|
|
|
import { Connection, createConnection } from "typeorm"; |
|
|
|
import * as entities from "../database/entities"; |
|
|
|
import { Connection } from "typeorm"; |
|
|
|
import connectToDatabase from "@autoplex/database"; |
|
|
|
import { env, secret } from "@autoplex/utils"; |
|
|
|
import Service from "./Service"; |
|
|
|
import { readFile } from "fs/promises"; |
|
|
|
import Application from "../Application"; |
|
|
|
|
|
|
|
export default class Database extends Service |
|
|
@ -22,22 +22,12 @@ export default class Database extends Service |
|
|
|
* Boot the database service |
|
|
|
*/ |
|
|
|
public async boot() { |
|
|
|
// Fetch the database password from the secret file
|
|
|
|
let password = (await readFile(<string>process.env["DB_PASSWORD_FILE"])).toString().trim(); |
|
|
|
|
|
|
|
// Create the database connection
|
|
|
|
await createConnection({ |
|
|
|
type : <"mysql" | "mariadb">process.env["DB_TYPE"], |
|
|
|
host : process.env["DB_HOST"], |
|
|
|
port : parseInt(<string>process.env["DB_PORT"]), |
|
|
|
username : process.env["DB_USER"], |
|
|
|
password : password, |
|
|
|
database : process.env["DB_DATABASE"], |
|
|
|
// synchronize: process.env["NODE_ENV"] != "production",
|
|
|
|
synchronize: false, |
|
|
|
entities : Object.values(entities), |
|
|
|
migrations : ["src/migrations/*.ts"] |
|
|
|
}); |
|
|
|
let host = env("DB_HOST"); |
|
|
|
let port = parseInt(env("DB_PORT")); |
|
|
|
let username = env("DB_USER"); |
|
|
|
let password = await secret(env("DB_PASSWORD_FILE")); |
|
|
|
let database = env("DB_DATABASE"); |
|
|
|
this.connection = await connectToDatabase(host, port, username, password, database); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|