diff --git a/bin/jadb.dart b/bin/jadb.dart index 7ac2dfc..5da6b22 100644 --- a/bin/jadb.dart +++ b/bin/jadb.dart @@ -47,8 +47,16 @@ class CreateDb extends Command { final db = await createDatabaseFactoryFfi(ffiInit: () { open.overrideForAll( - () => DynamicLibrary.open(argResults!.option('libsqlite')!)); - }).openDatabase(Directory.current.uri.resolve('jadb.sqlite').path); + () => DynamicLibrary.open(argResults!.option('libsqlite')!), + ); + }).openDatabase( + Directory.current.uri.resolve('jadb.sqlite').path, + options: OpenDatabaseOptions( + onOpen: (db) { + db.execute("PRAGMA foreign_keys = ON"); + }, + ), + ); await addDataFromJMdict(db); await addDataFromRADKFILE(db); @@ -74,9 +82,17 @@ class QueryKanji extends Command { final db = await createDatabaseFactoryFfi(ffiInit: () { open.overrideForAll( - () => DynamicLibrary.open(argResults!.option('libsqlite')!)); + () => DynamicLibrary.open(argResults!.option('libsqlite')!), + ); }).openDatabase( - Directory.current.uri.resolve(argResults!.option('jadb')!).path); + Directory.current.uri.resolve(argResults!.option('jadb')!).path, + options: OpenDatabaseOptions( + readOnly: true, + onOpen: (db) { + db.execute("PRAGMA foreign_keys = ON"); + }, + ), + ); final result = await JaDBConnection(db).searchKanji('漢'); @@ -106,11 +122,19 @@ class QueryWord extends Command { final db = await createDatabaseFactoryFfi(ffiInit: () { open.overrideForAll( - () => DynamicLibrary.open(argResults!.option('libsqlite')!)); + () => DynamicLibrary.open(argResults!.option('libsqlite')!), + ); }).openDatabase( - Directory.current.uri.resolve(argResults!.option('jadb')!).path); + Directory.current.uri.resolve(argResults!.option('jadb')!).path, + options: OpenDatabaseOptions( + readOnly: true, + onOpen: (db) { + db.execute("PRAGMA foreign_keys = ON"); + }, + ), + ); - final result = await JaDBConnection(db).searchWord('かな'); + final result = await JaDBConnection(db).searchWord('kana'); if (result == null) { print("Invalid search");