diff --git a/db/migrations/20190202114345_create_announcements_authors.js b/db/migrations/20190202114345_create_announcements_authors.js new file mode 100644 index 0000000000000000000000000000000000000000..cbc58e4da35d929d3b2d4850c831b378396bf547 --- /dev/null +++ b/db/migrations/20190202114345_create_announcements_authors.js @@ -0,0 +1,18 @@ + +exports.up = function (knex, Promise) { + return knex.schema.createTable('announcements_authors', function (table) { + table.increments('id'); //autoincrementing (non-nullable) primary key + + table.integer('mid').notNullable() + .references('mid').inTable('messages_announcements') + .onDelete('CASCADE'); //if announcement is deleted, also delete authors + + table.integer('gid').notNullable() + .references('gid').inTable('groups') + .onDelete('CASCADE'); //if group is deleted, also delete authors + }); +}; + +exports.down = function (knex, Promise) { + return knex.schema.dropTable('announcements_authors'); +}; diff --git a/db/migrations/20190202114346_create_announcements_recipients.js b/db/migrations/20190202114346_create_announcements_recipients.js new file mode 100644 index 0000000000000000000000000000000000000000..db72ec692151a9c969a41071aaddaaa2e3d8dc0e --- /dev/null +++ b/db/migrations/20190202114346_create_announcements_recipients.js @@ -0,0 +1,18 @@ + +exports.up = function (knex, Promise) { + return knex.schema.createTable('announcements_recipients', function (table) { + table.increments('id'); //autoincrementing (non-nullable) primary key + + table.integer('mid').notNullable() + .references('mid').inTable('messages_announcements') + .onDelete('CASCADE'); //if announcement is deleted, also delete recipients + + table.integer('gid').notNullable() + .references('gid').inTable('groups') + .onDelete('CASCADE'); //if group is deleted, also delete recipient + }); +}; + +exports.down = function (knex, Promise) { + return knex.schema.dropTable('announcements_recipients'); +}; diff --git a/db/migrations/20190202114347_create_events_authors.js b/db/migrations/20190202114347_create_events_authors.js new file mode 100644 index 0000000000000000000000000000000000000000..904d67ebce9082d712d1c8a4d5e79b2095f65100 --- /dev/null +++ b/db/migrations/20190202114347_create_events_authors.js @@ -0,0 +1,18 @@ + +exports.up = function (knex, Promise) { + return knex.schema.createTable('events_authors', function (table) { + table.increments('id'); //autoincrementing (non-nullable) primary key + + table.integer('mid').notNullable() + .references('mid').inTable('messages_events') + .onDelete('CASCADE'); //if event is deleted, also delete authors + + table.integer('gid').notNullable() + .references('gid').inTable('groups') + .onDelete('CASCADE'); //if group is deleted, also delete authors + }); +}; + +exports.down = function (knex, Promise) { + return knex.schema.dropTable('events_authors'); +}; diff --git a/db/migrations/20190202114348_create_events_recipients.js b/db/migrations/20190202114348_create_events_recipients.js new file mode 100644 index 0000000000000000000000000000000000000000..762a3f0338b071541e5cc2e53f4940986e84c5d8 --- /dev/null +++ b/db/migrations/20190202114348_create_events_recipients.js @@ -0,0 +1,18 @@ + +exports.up = function (knex, Promise) { + return knex.schema.createTable('events_recipients', function (table) { + table.increments('id'); //autoincrementing (non-nullable) primary key + + table.integer('mid').notNullable() + .references('mid').inTable('messages_events') + .onDelete('CASCADE'); //if event is deleted, also delete recipients + + table.integer('gid').notNullable() + .references('gid').inTable('groups') + .onDelete('CASCADE'); //if group is deleted, also delete recipient + }); +}; + +exports.down = function (knex, Promise) { + return knex.schema.dropTable('events_recipients'); +};