alapa
Version:
A cutting-edge web development framework designed to revolutionize the way developers build modern web applications.
45 lines (44 loc) • 1.81 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.updateDBConnectionForMigration = updateDBConnectionForMigration;
const typeorm_1 = require("typeorm");
const typeorm_naming_strategies_1 = require("typeorm-naming-strategies");
const globals_1 = require("../shared/globals");
const model_1 = require("../data/model");
const global_config_1 = require("./global-config");
let DatabaseConnectionForMigration = new typeorm_1.DataSource({
type: "sqlite",
database: "test.db",
});
async function updateDBConnectionForMigration() {
// Ensure previous connection is closed before updating
if (DatabaseConnectionForMigration?.isInitialized) {
await DatabaseConnectionForMigration.destroy();
}
const databaseConfig = globals_1.GlobalConfig.database;
const config = {
...global_config_1.globalConfig,
...databaseConfig.connection,
};
config.entities = ["src/models/**/*.ts"];
config.migrations = ["migration/**/*.ts"];
// Ensure that entities are handled correctly
if (Array.isArray(config.entities)) {
// Add or update entities as needed
if (!config.entities.includes(model_1.SessionDatabase)) {
config.entities.push(model_1.SessionDatabase);
}
}
else {
// If entities is not an array, initialize it with the new entity
config.entities = [model_1.SessionDatabase];
}
// Initialize the new connection
DatabaseConnectionForMigration = new typeorm_1.DataSource({
...config,
namingStrategy: new typeorm_naming_strategies_1.SnakeNamingStrategy(),
});
await DatabaseConnectionForMigration.initialize();
// console.log("Database connection updated and initialized.");
}
exports.default = DatabaseConnectionForMigration;
;