sqlite3_migrations_with_multiverse_time_travel 1.0.0
sqlite3_migrations_with_multiverse_time_travel: ^1.0.0 copied to clipboard
Runs database migrations for apps using sqlite3. Helps with checking out different branches during development by storing the instructions to run down migrations alongside the data in the db.
example/sqlite3_migrations_with_multiverse_time_travel_example.dart
import 'dart:ffi';
import 'package:sqlite3/open.dart';
import 'package:sqlite3/sqlite3.dart';
import 'package:sqlite3_migrations_with_multiverse_time_travel/sqlite3_migrations_with_multiverse_time_travel.dart';
final migrations = [
Migration(
definedAt: DateTime(2025, 3, 14, 1),
up: """
create table users (
id integer primary key autoincrement,
name text not null
);
insert into users (name) values ('Alice');
insert into users (name) values ('Bob');
""",
down: """
drop table users;
""",
),
];
void main() {
open.overrideFor(OperatingSystem.windows, () => DynamicLibrary.open('winsqlite3.dll'));
final db = sqlite3.openInMemory();
Sqlite3Database(db).migrate(migrations);
for (final row in db.select('select * from users').rows) {
print(row);
}
db.dispose();
}