exports.up = function(knex, Promise) { return Promise.all([ knex.schema.createTable('remotedev_reports', function(table) { table.uuid('id').primary(); table.string('type'); table.string('title'); table.string('description'); table.string('action'); table.text('payload'); table.text('preloadedState'); table.text('screenshot'); table.string('userAgent'); table.string('version'); table.string('user'); table.string('userId'); table.string('instanceId'); table.string('meta'); table.string('exception'); table.timestamp('added').defaultTo(knex.fn.now()); table.uuid('appId') .references('id') .inTable('remotedev_apps').onDelete('CASCADE').onUpdate('CASCADE') .defaultTo('78626c31-e16b-4528-b8e5-f81301b627f4'); }), knex.schema.createTable('remotedev_payloads', function(table){ table.uuid('id').primary(); table.text('state'); table.text('action'); table.timestamp('added').defaultTo(knex.fn.now()); table.uuid('reportId') .references('id') .inTable('remotedev_reports').onDelete('CASCADE').onUpdate('CASCADE'); }), knex.schema.createTable('remotedev_apps', function(table){ table.uuid('id').primary(); table.string('title'); table.string('description'); table.string('url'); table.timestamps(false, true); }), 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(false, true); }), knex.schema.createTable('remotedev_users_apps', function(table){ table.boolean('readOnly').defaultTo(false); table.uuid('userId'); table.uuid('appId'); table.primary(['userId', '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'); }) ]) }; exports.down = function(knex, Promise) { return Promise.all([ knex.schema.dropTable('remotedev_reports'), knex.schema.dropTable('remotedev_apps') ]) };