bcgov/common-hosted-email-service

View on GitHub
app/src/services/migrations/20240229000000_cascade.js

Summary

Maintainability
A
3 hrs
Test Coverage
exports.up = function (knex) {
  return Promise.resolve()
    .then(() => knex.schema.alterTable('queue', table => {
      table.dropForeign('messageId');
      table.foreign('messageId').references('messageId').inTable('message').onUpdate('CASCADE').onDelete('CASCADE');
    }))
    .then(() => knex.schema.alterTable('status', table => {
      table.dropForeign('messageId');
      table.foreign('messageId').references('messageId').inTable('message').onUpdate('CASCADE').onDelete('CASCADE');
    }))
    .then(() => knex.schema.alterTable('message', table => {
      table.dropForeign('transactionId');
      table.foreign('transactionId').references('transactionId').inTable('trxn').onUpdate('CASCADE').onDelete('CASCADE');
    }));
};

exports.down = function (knex) {
  return Promise.resolve()
    .then(() => knex.schema.alterTable('message', table => {
      table.dropForeign('transactionId');
      table.foreign('transactionId').references('transactionId').inTable('trxn');
    }))
    .then(() => knex.schema.alterTable('status', table => {
      table.dropForeign('messageId');
      table.foreign('messageId').references('messageId').inTable('message');
    }))
    .then(() => knex.schema.alterTable('queue', table => {
      table.dropForeign('messageId');
      table.foreign('messageId').references('messageId').inTable('message');
    }));
};