migrations

This commit is contained in:
ntr 2018-09-13 17:21:49 +10:00
parent fccfd0e03a
commit c3194fba97
9 changed files with 48 additions and 49 deletions

2
ops/.gitignore vendored Executable file
View File

@ -0,0 +1,2 @@
node_modules/
package-lock.json

View File

View File

@ -1,6 +0,0 @@
-- This file was automatically created by Diesel to setup helper functions
-- and other internal bookkeeping. This file is safe to edit, any future
-- changes will be added to existing projects as new migrations.
DROP FUNCTION IF EXISTS diesel_manage_updated_at(_tbl regclass);
DROP FUNCTION IF EXISTS diesel_set_updated_at();

View File

@ -1,36 +0,0 @@
-- This file was automatically created by Diesel to setup helper functions
-- and other internal bookkeeping. This file is safe to edit, any future
-- changes will be added to existing projects as new migrations.
-- Sets up a trigger for the given table to automatically set a column called
-- `updated_at` whenever the row is modified (unless `updated_at` was included
-- in the modified columns)
--
-- # Example
--
-- ```sql
-- CREATE TABLE users (id SERIAL PRIMARY KEY, updated_at TIMESTAMP NOT NULL DEFAULT NOW());
--
-- SELECT diesel_manage_updated_at('users');
-- ```
CREATE OR REPLACE FUNCTION diesel_manage_updated_at(_tbl regclass) RETURNS VOID AS $$
BEGIN
EXECUTE format('CREATE TRIGGER set_updated_at BEFORE UPDATE ON %s
FOR EACH ROW EXECUTE PROCEDURE diesel_set_updated_at()', _tbl);
END;
$$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION diesel_set_updated_at() RETURNS trigger AS $$
BEGIN
IF (
NEW IS DISTINCT FROM OLD AND
NEW.updated_at IS NOT DISTINCT FROM OLD.updated_at
) THEN
NEW.updated_at := current_timestamp;
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;

View File

@ -1 +0,0 @@
DROP TABLE lobbies;

View File

@ -1,6 +0,0 @@
CREATE TABLE lobbies (
id uuid PRIMARY KEY,
a uuid NOT NULL,
b uuid,
data bytea
);

23
ops/knexfile.js Executable file
View File

@ -0,0 +1,23 @@
// Update with your config settings.
const local = {
client: 'postgresql',
connection: {
database: 'cryps',
user: 'cryps',
password: 'craftbeer'
},
pool: {
min: 2,
max: 10
},
migrations: {
tableName: 'knex_migrations'
}
};
module.exports = {
development: local,
production: local,
};

View File

@ -0,0 +1,8 @@
exports.up = async knex => {
return knex.schema.createTable('users', table => {
table.uuid('id').primary();
table.text('name');
});
};
exports.down = async () => {};

15
ops/package.json Normal file
View File

@ -0,0 +1,15 @@
{
"name": "migrations",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"knex": "^0.15.2",
"pg": "^7.4.3"
}
}