db init stuff
This commit is contained in:
46
db/initialize.ts
Normal file
46
db/initialize.ts
Normal file
@@ -0,0 +1,46 @@
|
||||
import config from '~config';
|
||||
|
||||
import dbClient from './client.ts';
|
||||
|
||||
console.log('Attempting to create DB');
|
||||
await dbClient.execute(`CREATE SCHEMA IF NOT EXISTS ${config.db.name};`);
|
||||
await dbClient.execute(`USE ${config.db.name}`);
|
||||
console.log('DB created');
|
||||
|
||||
console.log('Attempt to drop all tables');
|
||||
await dbClient.execute(`DROP TABLE IF EXISTS plans;`);
|
||||
await dbClient.execute(`DROP TABLE IF EXISTS users;`);
|
||||
console.log('Tables dropped');
|
||||
|
||||
console.log('Attempting to create table users');
|
||||
await dbClient.execute(`
|
||||
CREATE TABLE users (
|
||||
id varchar(20) NOT NULL,
|
||||
name varchar(20) NOT NULL,
|
||||
pin varchar(16) NOT NULL,
|
||||
email varchar(255) NULL,
|
||||
deleteCode varchar(20) NULL,
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY users_id_UNIQUE (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
`);
|
||||
console.log('Table created');
|
||||
|
||||
console.log('Attempting to create table plans');
|
||||
await dbClient.execute(`
|
||||
CREATE TABLE plans (
|
||||
id varchar(20) NOT NULL,
|
||||
ownerId varchar(20) NOT NULL,
|
||||
name varchar(200) NOT NULL,
|
||||
folder varchar(200) NOT NULL,
|
||||
data longtext NOT NULL,
|
||||
deleted tinyint(1) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (id),
|
||||
CONSTRAINT plans_ownerId_FK FOREIGN KEY (ownerId) REFERENCES users (id) ON DELETE RESTRICT ON UPDATE RESTRICT,
|
||||
UNIQUE KEY plans_id_UNIQUE (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
`);
|
||||
console.log('Table created');
|
||||
|
||||
await dbClient.close();
|
||||
console.log('Done!');
|
||||
Reference in New Issue
Block a user