TypeScript/JavaScript migrations framework for SQLite databases using
better-sqlite3. Handles multi-database setups with transaction coordination.
In development. Core infrastructure complete. API functions implemented:
init(), isUpToDate(), getStatus().
See TODO.md for implementation progress.
- Multi-database migration coordination
- Two execution modes: separate connections or ATTACH-based
- Transaction-based execution with rollback support
- Migration validation and consistency checking
- Dependency injection architecture with tinytsdi
npm install bs3m better-sqlite3import {init, isUpToDate, getStatus} from 'bs3m';
init({
migrationsDir: './migrations',
databases: {
main: './data/main.db',
cache: './data/cache.db',
},
});
// Check migration status
const upToDate = await isUpToDate();
// Get detailed status report
const status = await getStatus();Migration IDs follow the pattern: yymmdd_hhmm_name__flags
Example: 250101_1430_add_users_table.js
export default {
dbKeys: ['main'],
up(dbs) {
dbs.main.exec('CREATE TABLE users (id INTEGER PRIMARY KEY)');
},
down(dbs) {
dbs.main.exec('DROP TABLE users');
},
};- Node.js >= 22.0.0
- better-sqlite3 ^12.4.1
ISC