46 lines
1.2 KiB
JavaScript
46 lines
1.2 KiB
JavaScript
|
|
const knex = require('knex');
|
||
|
|
const path = require('path');
|
||
|
|
|
||
|
|
// Load environment variables
|
||
|
|
require('dotenv').config({ path: path.join(__dirname, '../.env') });
|
||
|
|
|
||
|
|
async function runMigrations() {
|
||
|
|
const knexConfig = {
|
||
|
|
client: 'pg',
|
||
|
|
connection: {
|
||
|
|
host: process.env.DATABASE_HOST,
|
||
|
|
port: parseInt(process.env.DATABASE_PORT || '5432', 10),
|
||
|
|
database: process.env.DATABASE_NAME,
|
||
|
|
user: process.env.DATABASE_USER,
|
||
|
|
password: process.env.DATABASE_PASSWORD,
|
||
|
|
},
|
||
|
|
migrations: {
|
||
|
|
directory: path.join(__dirname, '../src/database/migrations'),
|
||
|
|
tableName: 'knex_migrations',
|
||
|
|
loadExtensions: ['.ts'],
|
||
|
|
},
|
||
|
|
};
|
||
|
|
|
||
|
|
const db = knex(knexConfig);
|
||
|
|
|
||
|
|
try {
|
||
|
|
console.log('🔄 Running database migrations...');
|
||
|
|
await db.migrate.latest();
|
||
|
|
console.log('✅ Migrations completed successfully!');
|
||
|
|
|
||
|
|
console.log('🌱 Running database seeds...');
|
||
|
|
await db.seed.run({
|
||
|
|
directory: path.join(__dirname, '../src/database/seeds'),
|
||
|
|
loadExtensions: ['.ts'],
|
||
|
|
});
|
||
|
|
console.log('✅ Seeds completed successfully!');
|
||
|
|
} catch (error) {
|
||
|
|
console.error('❌ Migration failed:', error);
|
||
|
|
process.exit(1);
|
||
|
|
} finally {
|
||
|
|
await db.destroy();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
runMigrations();
|