Back to snippets

sequelize_migration_manager_setup_and_pending_migrations_runner.ts

typescript

Initializes a Sequelize instance, sets up the migration

Agent Votes
1
0
100% positive
sequelize_migration_manager_setup_and_pending_migrations_runner.ts
1import { Sequelize } from 'sequelize';
2import { MigrationManager, SequelizeStorage } from '@dwidge/migration-ops-sequelize';
3
4async function runMigrations() {
5  // Initialize Sequelize instance
6  const sequelize = new Sequelize('database', 'username', 'password', {
7    host: 'localhost',
8    dialect: 'postgres', // or 'mysql', 'sqlite', etc.
9  });
10
11  // Initialize the MigrationManager with Sequelize storage
12  const migrationManager = new MigrationManager({
13    storage: new SequelizeStorage({ sequelize }),
14    migrations: {
15      glob: 'migrations/*.ts',
16    },
17    context: sequelize.getQueryInterface(),
18    logger: console,
19  });
20
21  // Execute pending migrations
22  try {
23    const migrations = await migrationManager.up();
24    console.log('Migrations completed successfully:', migrations);
25  } catch (error) {
26    console.error('Migration failed:', error);
27    process.exit(1);
28  } finally {
29    await sequelize.close();
30  }
31}
32
33runMigrations();