@@ -5,7 +5,9 @@ | |||
"main": "index.js", | |||
"scripts": { | |||
"test": "echo \"Error: no test specified\" && exit 1", | |||
"start": "node index.js" | |||
"start": "node index.js", | |||
"setup": "node scripts/setup.js", | |||
"reset": "node scripts/reset.js" | |||
}, | |||
"author": { | |||
"name": "Martin Dørum Nygaard", |
@@ -0,0 +1,30 @@ | |||
var fs = require("fs"); | |||
var pg = require("pg"); | |||
var conf = JSON.parse(fs.readFileSync("./conf.json")); | |||
var sql = fs.readFileSync("sql/reset.sql", "utf8"); | |||
var client = new pg.Client( | |||
"postgres://"+ | |||
conf.db.user+":"+ | |||
conf.db.pass+"@"+ | |||
conf.db.host+"/"+ | |||
conf.db.database | |||
); | |||
client.connect(function(err) { | |||
if (err) { | |||
return console.log("Couldn't connect: "+err); | |||
process.exit(); | |||
} | |||
client.query(sql, function(err, res) { | |||
if (err) { | |||
console.log("Error running query: "+err); | |||
} else { | |||
console.log("Database reset."); | |||
} | |||
process.exit(); | |||
}); | |||
}); |
@@ -0,0 +1,32 @@ | |||
var fs = require("fs"); | |||
var pg = require("pg"); | |||
var conf = JSON.parse(fs.readFileSync("./conf.json")); | |||
var sql = fs.readFileSync("sql/setup.sql", "utf8"); | |||
var client = new pg.Client( | |||
"postgres://"+ | |||
conf.db.user+":"+ | |||
conf.db.pass+"@"+ | |||
conf.db.host+"/"+ | |||
conf.db.database | |||
); | |||
client.connect(function(err) { | |||
if (err) { | |||
console.log("Couldn't connect: "+err); | |||
console.log("Make sure that the database exists."); | |||
process.exit(); | |||
} | |||
client.query(sql, function(err, res) { | |||
if (err) { | |||
console.log("Error running query: "+err); | |||
console.log("Make sure that the database is empty."); | |||
} else { | |||
console.log("Database set up."); | |||
} | |||
process.exit(); | |||
}); | |||
}); |
@@ -0,0 +1,3 @@ | |||
DROP TABLE IF EXISTS users CASCADE; | |||
DROP TABLE IF EXISTS collections CASCADE; | |||
DROP TABLE IF EXISTS images CASCADE; |
@@ -3,14 +3,14 @@ CREATE TABLE users ( | |||
username VARCHAR(64) UNIQUE NOT NULL, | |||
pass_hash CHAR(128) NOT NULL, | |||
date_created TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT NOW() | |||
) | |||
); | |||
CREATE TABLE collections ( | |||
id SERIAL PRIMARY KEY, | |||
name VARCHAR(64), | |||
user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE | |||
) | |||
); | |||
CREATE TABLE images ( | |||
id SERIAL PRIMARY KEY, | |||
@@ -19,4 +19,4 @@ CREATE TABLE images ( | |||
extension VARCHAR(16) NOT NULL, | |||
collection_id INTEGER NOT NULL REFERENCES collections(id) ON DELETE CASCADE | |||
) | |||
); |