71 lines
2.2 KiB
JavaScript
71 lines
2.2 KiB
JavaScript
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('meta');
|
|
table.string('exception');
|
|
table.timestamp('added');
|
|
table.uuid('appId')
|
|
.references('id')
|
|
.inTable('remotedev_apps')
|
|
.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');
|
|
table.uuid('reportId')
|
|
.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']);
|
|
})
|
|
])
|
|
};
|
|
|
|
exports.down = function(knex, Promise) {
|
|
return Promise.all([
|
|
knex.schema.dropTable('remotedev_reports'),
|
|
knex.schema.dropTable('remotedev_apps')
|
|
])
|
|
};
|