@blackglory/better-sqlite3-migrations
v0.1.19
Published
A utility for database migrations with better-sqlite3
Downloads
1,548
Maintainers
Readme
better-sqlite3-migrations
A utility for database migrations with better-sqlite3.
The module using user_version to record the schema version.
Install
npm install --save @blackglory/better-sqlite3-migrations
# or
yarn add @blackglory/better-sqlite3-migrations
API
interface IMigration {
version: number
up: string | ((db: Database) => void)
down: string | ((db: Database) => void)
}
You may need migration-files.
migrate
function migrate(db: Database, migrations: IMigration[], targetVersion?: number): void
If targetVersion is undefined
, then use the maximum version of migrations.
FAQ
Can multiple instances migrate in parallel?
Yes, the user_version
update is visible to every database connection.
When the maximum migration version is less than the user_version
(which means it is an obsolete instance), it will skip the migration.
You may need a proper retry strategy,
because each migration uses BEGIN IMMEDIATE
to ensure that parallel write transactions fail early.