diff --git a/core/server/data/exporter/table-lists.js b/core/server/data/exporter/table-lists.js index 4ba7ee762e..20e114ca57 100644 --- a/core/server/data/exporter/table-lists.js +++ b/core/server/data/exporter/table-lists.js @@ -37,7 +37,8 @@ const BACKUP_TABLES = [ 'members_paid_subscription_events', 'members_subscribe_events', 'members_product_events', - 'offers' + 'offers', + 'offer_redemptions' ]; // NOTE: exposing only tables which are going to be included in a "default" export file diff --git a/core/server/data/migrations/versions/4.19/02-add-offer-redemptions-table.js b/core/server/data/migrations/versions/4.19/02-add-offer-redemptions-table.js new file mode 100644 index 0000000000..5f447ba8a8 --- /dev/null +++ b/core/server/data/migrations/versions/4.19/02-add-offer-redemptions-table.js @@ -0,0 +1,8 @@ +const {addTable} = require('../../utils'); + +module.exports = addTable('offer_redemptions', { + id: {type: 'string', maxlength: 24, nullable: false, primary: true}, + offer_id: {type: 'string', maxlength: 24, nullable: false, references: 'offers.id', cascadeDelete: true}, + member_id: {type: 'string', maxlength: 24, nullable: false, references: 'members.id', cascadeDelete: true}, + subscription_id: {type: 'string', maxlength: 24, nullable: false, references: 'members_stripe_customers_subscriptions.id', cascadeDelete: true} +}); diff --git a/core/server/data/schema/schema.js b/core/server/data/schema/schema.js index 85e243dcac..efcaa6a37e 100644 --- a/core/server/data/schema/schema.js +++ b/core/server/data/schema/schema.js @@ -529,6 +529,12 @@ module.exports = { plan_amount: {type: 'integer', nullable: false}, plan_currency: {type: 'string', maxLength: 3, nullable: false} }, + offer_redemptions: { + id: {type: 'string', maxlength: 24, nullable: false, primary: true}, + offer_id: {type: 'string', maxlength: 24, nullable: false, references: 'offers.id', cascadeDelete: true}, + member_id: {type: 'string', maxlength: 24, nullable: false, references: 'members.id', cascadeDelete: true}, + subscription_id: {type: 'string', maxlength: 24, nullable: false, references: 'members_stripe_customers_subscriptions.id'} + }, members_subscribe_events: { id: {type: 'string', maxlength: 24, nullable: false, primary: true}, member_id: {type: 'string', maxlength: 24, nullable: false, unique: false, references: 'members.id', cascadeDelete: true}, diff --git a/test/unit/server/data/schema/integrity.test.js b/test/unit/server/data/schema/integrity.test.js index 8a752ec2fc..9d633a05d4 100644 --- a/test/unit/server/data/schema/integrity.test.js +++ b/test/unit/server/data/schema/integrity.test.js @@ -32,7 +32,7 @@ const defaultSettings = require('../../../../../core/server/data/schema/default- */ describe('DB version integrity', function () { // Only these variables should need updating - const currentSchemaHash = '2b5213b4ead41042194d4a9051bf0e8a'; + const currentSchemaHash = '33ec13330fc7384b849ae4b0e506017d'; const currentFixturesHash = 'c064a1b57c594e6a8d36f9e884df0a2a'; const currentSettingsHash = 'aa3fcbc8ab119b630aeda7366ead5493'; const currentRoutesHash = '3d180d52c663d173a6be791ef411ed01';