| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- const Adapter = require('../migrations/lib/adapter')
- const fs = require('fs').promises
- const path = require('path')
- async function main(args) {
- if (
- !args ||
- args.length === 0 ||
- args.includes('help') ||
- args.includes('--help') ||
- args.includes('-h')
- ) {
- console.log('')
- console.log('usage: node ./scripts/mark_migration.js migration state')
- console.log('')
- console.log(' migration: name of migration file')
- console.log(' state: executed | unexecuted')
- console.log('')
- return
- }
- const migration = args[0]
- if (!migration) {
- throw new Error('Error: migration must be supplied')
- }
- const state = args[1]
- if (!state) {
- throw new Error('Error: migration state must be supplied')
- }
- try {
- await fs.access(path.join(__dirname, '../migrations', `${migration}.js`))
- } catch (err) {
- throw new Error(
- `Error: migration ${migration} does not exist on disk: ${err}`
- )
- }
- console.log(`Marking ${migration} as ${state}`)
- process.env.SKIP_TAG_CHECK = 'true'
- const adapter = new Adapter()
- await adapter.connect()
- switch (state) {
- case 'executed':
- await adapter.markExecuted(migration)
- break
- case 'unexecuted':
- await adapter.unmarkExecuted(migration)
- break
- default:
- throw new Error(`invalid state "${state}"`)
- }
- console.log('Done')
- }
- if (require.main === module) {
- const args = process.argv.slice(2)
- main(args)
- .then(() => {
- process.exit(0)
- })
- .catch(err => {
- console.error(err)
- process.exit(1)
- })
- }
|