From 45482098d7da9b6058f9939bf74ceaac4d91c10b Mon Sep 17 00:00:00 2001 From: Zalmoxisus Date: Wed, 9 Nov 2016 19:59:02 +0200 Subject: [PATCH] Add `remotedev_users` schema and relations --- lib/db/migrations/reports.js | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/lib/db/migrations/reports.js b/lib/db/migrations/reports.js index 93f1d47..e8a9f27 100644 --- a/lib/db/migrations/reports.js +++ b/lib/db/migrations/reports.js @@ -18,9 +18,9 @@ exports.up = function(knex, Promise) { table.timestamp('added'); table.uuid('appId') .references('id') - .inTable('remotedev_apps'); + .inTable('remotedev_apps') + .defaultTo('78626c31-e16b-4528-b8e5-f81301b627f4'); }), - knex.schema.createTable('remotedev_payloads', function(table){ table.uuid('id').primary(); table.text('state'); @@ -30,13 +30,34 @@ exports.up = function(knex, Promise) { .references('id') .inTable('remotedev_reports'); }), - knex.schema.createTable('remotedev_apps', function(table){ table.uuid('id').primary(); table.string('title'); table.string('description'); table.string('url'); table.timestamps(); + }), + knex.schema.createTable('remotedev_users', function(table){ + table.uuid('id').primary(); + table.string('name'); + table.string('login'); + table.string('email'); + table.string('avatarUrl'); + table.string('profileUrl'); + table.string('oauthId'); + table.string('oauthType'); + table.string('token'); + table.timestamps(); + }), + knex.schema.createTable('remotedev_users_apps', function(table){ + table.boolean('readOnly').defaultTo(false); + table.uuid('userId'); + table.uuid('appId'); + table.foreign('userId') + .references('id').inTable('remotedev_users').onDelete('CASCADE').onUpdate('CASCADE'); + table.foreign('appId') + .references('id').inTable('remotedev_apps').onDelete('CASCADE').onUpdate('CASCADE'); + table.primary(['userId', 'appId']); }) ]) };