47 lines
1.1 KiB
Dart
47 lines
1.1 KiB
Dart
import 'dart:io';
|
|
|
|
import 'package:jadb/_data_ingestion/open_local_db.dart';
|
|
import 'package:jadb/_data_ingestion/seed_database.dart';
|
|
|
|
import 'package:args/command_runner.dart';
|
|
import 'package:jadb/cli/args.dart';
|
|
|
|
class CreateDb extends Command {
|
|
final name = "create-db";
|
|
final description = "Create the database";
|
|
|
|
CreateDb() {
|
|
addLibsqliteArg(argParser);
|
|
argParser.addFlag(
|
|
'wal',
|
|
help: '''Whether to use Write-Ahead Logging (WAL) mode.
|
|
|
|
This is recommended for better performance, but may not be used with
|
|
the readonly NixOS store.
|
|
''',
|
|
defaultsTo: false,
|
|
);
|
|
}
|
|
|
|
Future<void> run() async {
|
|
if (argResults!.option('libsqlite') == null) {
|
|
print(argParser.usage);
|
|
exit(64);
|
|
}
|
|
|
|
final db = await openLocalDb(
|
|
libsqlitePath: argResults!.option('libsqlite')!,
|
|
walMode: argResults!.flag('wal'),
|
|
readWrite: true,
|
|
);
|
|
|
|
await seedData(db).then((_) {
|
|
print("Database created successfully");
|
|
}).catchError((error) {
|
|
print("Error creating database: $error");
|
|
}).whenComplete(() {
|
|
db.close();
|
|
});
|
|
}
|
|
}
|