28 lines
781 B
Dart
28 lines
781 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 {
|
|
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);
|
|
}
|
|
}
|