Files
kokken/scripts/db-availability-migration.mjs

49 lines
1.2 KiB
JavaScript

import mysql from 'mysql2/promise'
import dotenv from 'dotenv'
dotenv.config()
async function run() {
const pool = mysql.createPool({
host: process.env.DB_HOST || 'localhost',
user: process.env.DB_USER || 'warme',
password: process.env.DB_PASSWORD || 'warme123',
database: process.env.DB_NAME || 'warme',
})
const conn = await pool.getConnection()
try {
// weekly availability (recurring weekly schedule)
await conn.query(`
CREATE TABLE IF NOT EXISTS weekly_availability (
id VARCHAR(36) PRIMARY KEY,
weekday TINYINT NOT NULL,
start_time TIME NOT NULL,
end_time TIME NOT NULL,
note TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;
`)
// blocked specific dates
await conn.query(`
CREATE TABLE IF NOT EXISTS blocked_dates (
id VARCHAR(36) PRIMARY KEY,
block_date DATE NOT NULL,
note TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;
`)
console.log('Availability tables created (if not existed)')
} finally {
conn.release()
await pool.end()
}
}
run().then(() => process.exit(0)).catch(err => {
console.error(err)
process.exit(1)
})