Parcourir la source

started database related things

master
mort il y a 8 ans
Parent
révision
4be1436845
5 fichiers modifiés avec 71 ajouts et 4 suppressions
  1. 3
    1
      package.json
  2. 30
    0
      scripts/reset.js
  3. 32
    0
      scripts/setup.js
  4. 3
    0
      sql/reset.sql
  5. 3
    3
      sql/setup.sql

+ 3
- 1
package.json Voir le fichier

"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1", "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": { "author": {
"name": "Martin Dørum Nygaard", "name": "Martin Dørum Nygaard",

+ 30
- 0
scripts/reset.js Voir le fichier

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();
});
});

+ 32
- 0
scripts/setup.js Voir le fichier

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();
});
});

+ 3
- 0
sql/reset.sql Voir le fichier

DROP TABLE IF EXISTS users CASCADE;
DROP TABLE IF EXISTS collections CASCADE;
DROP TABLE IF EXISTS images CASCADE;

+ 3
- 3
sql/setup.sql Voir le fichier

username VARCHAR(64) UNIQUE NOT NULL, username VARCHAR(64) UNIQUE NOT NULL,
pass_hash CHAR(128) NOT NULL, pass_hash CHAR(128) NOT NULL,
date_created TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT NOW() date_created TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT NOW()
)
);


CREATE TABLE collections ( CREATE TABLE collections (
id SERIAL PRIMARY KEY, id SERIAL PRIMARY KEY,
name VARCHAR(64), name VARCHAR(64),


user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE
)
);


CREATE TABLE images ( CREATE TABLE images (
id SERIAL PRIMARY KEY, id SERIAL PRIMARY KEY,
extension VARCHAR(16) NOT NULL, extension VARCHAR(16) NOT NULL,


collection_id INTEGER NOT NULL REFERENCES collections(id) ON DELETE CASCADE collection_id INTEGER NOT NULL REFERENCES collections(id) ON DELETE CASCADE
)
);

Chargement…
Annuler
Enregistrer