43 lines
1.3 KiB
JavaScript
43 lines
1.3 KiB
JavaScript
const { Pool } = require('pg');
|
|
require('dotenv').config();
|
|
|
|
const createTableQuery = `
|
|
CREATE TABLE IF NOT EXISTS participants (
|
|
id SERIAL PRIMARY KEY,
|
|
user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
participant_name VARCHAR(255) NOT NULL,
|
|
email VARCHAR(255) NOT NULL,
|
|
year INTEGER NOT NULL,
|
|
phone_number VARCHAR(15),
|
|
is_digital_art BOOLEAN DEFAULT false,
|
|
digital_art_link TEXT DEFAULT NULL,
|
|
is_handdrawn BOOLEAN DEFAULT false,
|
|
handdrawn_link TEXT DEFAULT NULL,
|
|
is_poster BOOLEAN DEFAULT false,
|
|
poster_link TEXT DEFAULT NULL,
|
|
CONSTRAINT fk_user FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
|
);
|
|
`;
|
|
|
|
async function createTable() {
|
|
const pool = new Pool({
|
|
connectionString: process.env.DATABASE_URL,
|
|
});
|
|
|
|
try {
|
|
console.log('Connecting to the database...');
|
|
const client = await pool.connect();
|
|
|
|
console.log('Creating participants table if it does not exist...');
|
|
await client.query(createTableQuery);
|
|
|
|
console.log('Participants table created or already exists.');
|
|
client.release();
|
|
} catch (error) {
|
|
console.error('Error creating participants table:', error);
|
|
} finally {
|
|
await pool.end();
|
|
}
|
|
}
|
|
|
|
createTable(); |