config files and scripts for database migration system
This commit is contained in:
@@ -1,21 +1,62 @@
|
||||
const { Sequelize } = require('sequelize');
|
||||
const { Sequelize } = require("sequelize");
|
||||
|
||||
// Load environment variables based on NODE_ENV
|
||||
// This ensures variables are available for both CLI and programmatic usage
|
||||
if (!process.env.DB_NAME && process.env.NODE_ENV) {
|
||||
const dotenv = require("dotenv");
|
||||
const envFile = `.env.${process.env.NODE_ENV}`;
|
||||
const result = dotenv.config({ path: envFile });
|
||||
if (result.error && process.env.NODE_ENV !== "production") {
|
||||
console.warn(
|
||||
`Warning: Could not load ${envFile}, using existing environment variables`
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// Database configuration object
|
||||
// Used by both Sequelize CLI and programmatic initialization
|
||||
const dbConfig = {
|
||||
username: process.env.DB_USER,
|
||||
password: process.env.DB_PASSWORD,
|
||||
database: process.env.DB_NAME,
|
||||
host: process.env.DB_HOST,
|
||||
port: process.env.DB_PORT || 5432,
|
||||
dialect: "postgres",
|
||||
logging: false,
|
||||
pool: {
|
||||
max: 5,
|
||||
min: 0,
|
||||
acquire: 10000,
|
||||
idle: 10000,
|
||||
},
|
||||
};
|
||||
|
||||
// Configuration for Sequelize CLI (supports multiple environments)
|
||||
// All environments use the same configuration from environment variables
|
||||
const cliConfig = {
|
||||
development: dbConfig,
|
||||
dev: dbConfig,
|
||||
test: dbConfig,
|
||||
qa: dbConfig,
|
||||
production: dbConfig,
|
||||
prod: dbConfig,
|
||||
};
|
||||
|
||||
// Create Sequelize instance for programmatic use
|
||||
const sequelize = new Sequelize(
|
||||
process.env.DB_NAME,
|
||||
process.env.DB_USER,
|
||||
process.env.DB_PASSWORD,
|
||||
dbConfig.database,
|
||||
dbConfig.username,
|
||||
dbConfig.password,
|
||||
{
|
||||
host: process.env.DB_HOST,
|
||||
port: process.env.DB_PORT,
|
||||
dialect: 'postgres',
|
||||
logging: false,
|
||||
pool: {
|
||||
max: 5,
|
||||
min: 0,
|
||||
acquire: 30000,
|
||||
idle: 10000
|
||||
}
|
||||
host: dbConfig.host,
|
||||
port: dbConfig.port,
|
||||
dialect: dbConfig.dialect,
|
||||
logging: dbConfig.logging,
|
||||
pool: dbConfig.pool,
|
||||
}
|
||||
);
|
||||
|
||||
module.exports = sequelize;
|
||||
// Export the sequelize instance as default (for backward compatibility)
|
||||
// Also export all environment configs for Sequelize CLI
|
||||
module.exports = sequelize;
|
||||
Object.assign(module.exports, cliConfig);
|
||||
|
||||
Reference in New Issue
Block a user