updates on database seed, popluates example vals
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
import pool from '.';
|
||||
|
||||
export default async function populate() {
|
||||
const setup = `SET ROLE postgres`
|
||||
|
||||
const populateUsers = `
|
||||
INSERT INTO recipin.appusers
|
||||
(firstname, lastname, handle, email, password, active)
|
||||
VALUES
|
||||
('Mikayla', 'Dobson', 'innocuoussymmetry', 'mikaylaherself@gmail.com', 'password1', true),
|
||||
('Emily', 'Dobson', 'emjdobson', 'emily@email.com', 'password2', true),
|
||||
('Montanna', 'Dobson', 'delayedlemon', 'montanna@email.com', 'password3', true),
|
||||
('Christine', 'Riley', 'christine', 'christine@email.com', 'password4', true),
|
||||
('Someone', 'Not active', 'someone', 'someone@email.com', 'notactive', false)
|
||||
;
|
||||
`
|
||||
|
||||
const populateRecipes = `
|
||||
INSERT INTO recipin.recipe
|
||||
(name, description, preptime, authoruserid)
|
||||
VALUES
|
||||
('Pad Thai', 'noodles', '1 hour', 1),
|
||||
('Tacos', null, '30 minutes', 1),
|
||||
('Garlic knots', null, '1 hour', 4),
|
||||
('Cacio e pepe', 'stinky pasta', '1 hour', 3)
|
||||
;
|
||||
`
|
||||
|
||||
const populateCollection = `
|
||||
INSERT INTO recipin.collection
|
||||
(name, active, ismaincollection, ownerid)
|
||||
VALUES
|
||||
('Mikayla''s collection', true, true, 1),
|
||||
('Emily''s collection', true, true, 2)
|
||||
;
|
||||
`
|
||||
|
||||
const allStatements: Array<string> = [
|
||||
setup, populateUsers, populateRecipes, populateCollection
|
||||
]
|
||||
|
||||
for (let s of allStatements) {
|
||||
try {
|
||||
await pool.query(s);
|
||||
} catch(e: any) {
|
||||
console.log('Last executed: ' + s);
|
||||
throw new Error(e);
|
||||
}
|
||||
}
|
||||
|
||||
console.log("Example values inserted successfully. DB seed complete.");
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
import { Client } from 'pg';
|
||||
import dotenv from 'dotenv';
|
||||
import populate from "./examplevals";
|
||||
|
||||
dotenv.config();
|
||||
|
||||
(async function() {
|
||||
@@ -14,9 +16,10 @@ dotenv.config();
|
||||
id INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
||||
firstname varchar NOT NULL,
|
||||
lastname varchar NOT NULL,
|
||||
handle varchar NOT NULL,
|
||||
email varchar NOT NULL,
|
||||
password varchar NOT NULL
|
||||
handle varchar NOT NULL UNIQUE,
|
||||
email varchar NOT NULL UNIQUE,
|
||||
password varchar NOT NULL,
|
||||
active boolean NOT NULL
|
||||
);
|
||||
`
|
||||
|
||||
@@ -97,5 +100,8 @@ dotenv.config();
|
||||
throw new Error(e);
|
||||
}
|
||||
|
||||
console.log("Database seed successful.");
|
||||
console.log("Database seed successful. Attempting to populate...");
|
||||
await populate();
|
||||
|
||||
process.exit(1);
|
||||
})();
|
||||
10
server/db/subquery.ts
Normal file
10
server/db/subquery.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
import { QueryResult } from "pg";
|
||||
import pool from "./";
|
||||
|
||||
export default function subquery(table: string, target: string, value: string | number): string {
|
||||
// const statement = `SELECT $1 FROM $2 WHERE $1 = $3`
|
||||
// const values = [target, table, value];
|
||||
// return await pool.query(statement, values);
|
||||
|
||||
return '(SELECT ' + target + ' FROM ' + table + ' WHERE ' + target + ' = ' + value + ')'
|
||||
}
|
||||
Reference in New Issue
Block a user