UNPKG

ghost

Version:

The professional publishing platform

36 lines (31 loc) 1.27 kB
const logging = require('@tryghost/logging'); const {createTransactionalMigration} = require('../../utils'); module.exports = createTransactionalMigration( async function up(knex) { const rows = await knex('products as t') // eslint-disable-line no-restricted-syntax .select( 't.id as id', 'mp.amount as monthly_price', 'yp.amount as yearly_price', knex.raw('coalesce(yp.currency, mp.currency) as currency') ) .leftJoin('stripe_prices AS mp', 't.monthly_price_id', 'mp.id') .leftJoin('stripe_prices AS yp', 't.yearly_price_id', 'yp.id') .where({ 't.type': 'paid', 't.currency': null }); if (!rows.length) { logging.info('Did not find any active paid Tiers'); return; } else { logging.info(`Updating ${rows.length} Tiers with price and currency information`); } for (const row of rows) { // eslint-disable-line no-restricted-syntax await knex('products').update(row).where('id', row.id); } }, async function down() { // no-op: we don't want to reintroduce the missing data } );