Add columns for referral code and referrer
Also made sure that these columns are auto-added to old
databases 😉
This commit is contained in:
parent
c4341772c6
commit
7cca56eaca
1 changed files with 31 additions and 0 deletions
|
@ -106,6 +106,33 @@ let pledgeSchema = function(t) {
|
||||||
t.integer('retry_times').defaultTo(10)
|
t.integer('retry_times').defaultTo(10)
|
||||||
t.boolean('get_newsletter').defaultTo(false)
|
t.boolean('get_newsletter').defaultTo(false)
|
||||||
t.text('other_message')
|
t.text('other_message')
|
||||||
|
|
||||||
|
t.string('referral_code', 256)
|
||||||
|
t.string('referrer', 128)
|
||||||
|
}
|
||||||
|
|
||||||
|
// function to make sure referral columns exist
|
||||||
|
// we need this because they were added later in the code, so
|
||||||
|
// if there are old databases they'd need to be updated.
|
||||||
|
|
||||||
|
function ensureReferralColumns(table) {
|
||||||
|
knex.schema.hasColumn(table, 'referral_code').then(function(exists) {
|
||||||
|
if (!exists) {
|
||||||
|
console.debug(`No referral_code column in ${table}! Adding now...`)
|
||||||
|
knex.schema.alterTable(table, t => {
|
||||||
|
t.string('referral_code', 256)
|
||||||
|
}).then(r=> console.debug(`referral_code column added to ${table}:`, r))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
knex.schema.hasColumn(table, 'referrer').then(function(exists) {
|
||||||
|
if (!exists) {
|
||||||
|
console.debug(`No referrer column in ${table}! Adding it now...`)
|
||||||
|
knex.schema.alterTable(table, t => {
|
||||||
|
t.string('referrer', 128)
|
||||||
|
}).then(r=> console.debug(`referrer column added to ${table}:`, r))
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// make sure pledges table exists
|
// make sure pledges table exists
|
||||||
|
@ -113,6 +140,8 @@ knex.schema.hasTable('pledges').then(function(exists) {
|
||||||
if (!exists) {
|
if (!exists) {
|
||||||
if (DEBUG) console.debug('No pledge table exists! Creating one now...')
|
if (DEBUG) console.debug('No pledge table exists! Creating one now...')
|
||||||
return knex.schema.createTable('pledges', pledgeSchema)
|
return knex.schema.createTable('pledges', pledgeSchema)
|
||||||
|
} else {
|
||||||
|
ensureReferralColumns('pledges')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -121,6 +150,8 @@ knex.schema.hasTable('unverified_pledges').then(function(exists) {
|
||||||
if (!exists) {
|
if (!exists) {
|
||||||
if (DEBUG) console.debug('No unverified pledge table exists! Creating one now...')
|
if (DEBUG) console.debug('No unverified pledge table exists! Creating one now...')
|
||||||
return knex.schema.createTable('unverified_pledges', pledgeSchema)
|
return knex.schema.createTable('unverified_pledges', pledgeSchema)
|
||||||
|
} else {
|
||||||
|
ensureReferralColumns('unverified_pledges')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue