Files
jadb/lib/models/create_empty_db.dart

28 lines
787 B
Dart

import 'dart:io';
import 'dart:isolate';
import 'package:path/path.dart';
import 'package:sqflite_common/sqlite_api.dart';
String migrationDirPath() {
final packageUri = Uri.parse('package:jadb/');
final packagePath = Isolate.resolvePackageUriSync(packageUri);
return packagePath!.resolve('../migrations').toFilePath();
}
Future<void> createEmptyDb(DatabaseExecutor db) async {
final List<String> migrationFiles = [];
for (final file in Directory(migrationDirPath()).listSync()) {
if (file is File && file.path.endsWith('.sql')) {
migrationFiles.add(file.path);
}
}
migrationFiles.sort((a, b) => basename(a).compareTo(basename(b)));
for (final file in migrationFiles) {
final sql = await File(file).readAsString();
await db.execute(sql);
}
}