Files
Jellystat/backend/migrations.js
2025-09-19 23:11:22 -05:00

68 lines
2.3 KiB
JavaScript

process.env.POSTGRES_USER = process.env.POSTGRES_USER ?? "postgres";
process.env.POSTGRES_ROLE =
process.env.POSTGRES_ROLE ?? process.env.POSTGRES_USER;
module.exports = {
development: {
client: 'pg',
connection: {
host: process.env.POSTGRES_IP,
user: process.env.POSTGRES_USER,
password: process.env.POSTGRES_PASSWORD,
port:process.env.POSTGRES_PORT,
database: process.env.POSTGRES_DB || 'jfstat',
createDatabase: true,
...(process.env.POSTGRES_SSL_ENABLED === "true"
? { ssl: { rejectUnauthorized: process.env.POSTGRES_SSL_REJECT_UNAUTHORIZED === undefined ? true : process.env.POSTGRES_SSL_REJECT_UNAUTHORIZED === "true" } }
: {})
},
migrations: {
directory: __dirname + '/migrations',
migrationSource: {
// Use a sequential index naming convention for migration files
pattern: /^([0-9]+)_.*\.js$/,
sortDirsSeparately: true,
load: (filename) => {
const migration = require(filename);
if (migration.up && migration.down) {
return migration;
} else {
throw new Error(`Invalid migration file: ${filename}`);
}
}
}
}
},
production: {
client: 'pg',
connection: {
host: process.env.DB_HOST,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
port:process.env.POSTGRES_PORT,
database: process.env.POSTGRES_DB || 'jfstat',
createDatabase: true,
...(process.env.POSTGRES_SSL_ENABLED === "true"
? { ssl: { rejectUnauthorized: process.env.POSTGRES_SSL_REJECT_UNAUTHORIZED === undefined ? true : process.env.POSTGRES_SSL_REJECT_UNAUTHORIZED === "true" } }
: {})
},
migrations: {
directory: __dirname + '/migrations',
migrationSource: {
// Use a sequential index naming convention for migration files
pattern: /^([0-9]+)_.*\.js$/,
sortDirsSeparately: true,
load: (filename) => {
const migration = require(filename);
if (migration.up && migration.down) {
return migration;
} else {
throw new Error(`Invalid migration file: ${filename}`);
}
}
}
}
}
};