41 lines
1.3 KiB
JavaScript
41 lines
1.3 KiB
JavaScript
const fs = require('fs');
|
|
const path = require('path');
|
|
const mysql = require('mysql2/promise');
|
|
const dotenv = require('dotenv');
|
|
|
|
dotenv.config({ path: path.join(__dirname, '../.env') });
|
|
|
|
const dbConfig = {
|
|
host: process.env.DB_HOST,
|
|
user: process.env.DB_USER,
|
|
password: process.env.DB_PASSWORD,
|
|
database: process.env.DB_NAME,
|
|
multipleStatements: true
|
|
};
|
|
|
|
async function setupDatabase() {
|
|
const connection = await mysql.createConnection(dbConfig);
|
|
|
|
try {
|
|
// Create tables
|
|
console.log('Setting up database schema...');
|
|
const schemaSQL = fs.readFileSync(path.join(__dirname, '../db/schema.sql'), 'utf8');
|
|
await connection.query(schemaSQL);
|
|
console.log('Schema created successfully');
|
|
|
|
// Create stored procedures
|
|
// console.log('Setting up stored procedures...');
|
|
// const proceduresSQL = fs.readFileSync(path.join(__dirname, '../db/procedures.sql'), 'utf8');
|
|
// await connection.query(proceduresSQL);
|
|
// console.log('Stored procedures created successfully');
|
|
|
|
console.log('Database setup completed successfully');
|
|
} catch (error) {
|
|
console.error('Error setting up database:', error);
|
|
process.exit(1);
|
|
} finally {
|
|
await connection.end();
|
|
}
|
|
}
|
|
|
|
setupDatabase();
|