import 'dart:ffi'; import 'dart:io'; import 'package:sqflite_common_ffi/sqflite_ffi.dart'; import 'package:sqlite3/open.dart'; Future openLocalDb({ String? libsqlitePath, String? jadbPath, bool readWrite = false, }) async { if (libsqlitePath == null) { libsqlitePath = Platform.environment['LIBSQLITE_PATH']; } if (jadbPath == null) { jadbPath = Platform.environment['JADB_PATH'] ?? Directory.current.uri.resolve('jadb.sqlite').path; } final db = await createDatabaseFactoryFfi( ffiInit: () => open.overrideForAll(() => DynamicLibrary.open(libsqlitePath!)), ).openDatabase( jadbPath, options: OpenDatabaseOptions( onOpen: (db) { db.execute("PRAGMA foreign_keys = ON"); }, readOnly: !readWrite, ), ); return db; }