models/createEmptyDb: init
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user