fix: specify sqlite3.wasm URI for web database connection

This commit is contained in:
2025-05-04 13:18:17 +03:00
parent 4f2e8ee1f2
commit e7cc15872a
@@ -1,10 +1,30 @@
// lib/database/database_connection/connection_web.dart
import 'package:drift/drift.dart';
import 'package:drift/web.dart';
import 'package:drift/wasm.dart'; // Импорт для конфигурации WASM
QueryExecutor connect() {
print("Connecting to database using WebDatabase (IndexedDB)");
// Используем WebDatabase для веба. 'db' - имя базы данных в IndexedDB.
// logStatements: true полезен для отладки SQL-запросов (в консоли браузера)
return WebDatabase('db', logStatements: false);
print("Connecting to database using WebDatabase with explicit WASM config");
// Используем конструктор withOptions для явной передачи конфигурации WASM
return WebDatabase.withOptions(
'db', // Имя базы данных в IndexedDB
logStatements: false,
options: DriftWebOptions(
// Явно указываем Drift, где искать файл WASM.
// WasmDatabase.driver() обрабатывает загрузку и инициализацию.
// '/sqlite3.wasm' - это стандартный путь, куда Flutter помещает файл.
wasmModule: WasmDatabase.driver(
// Указываем URI к файлу sqlite3.wasm
sqlite3WasmUri: Uri.parse('/sqlite3.wasm'),
// driftWorkerUri не обязателен, если не используются веб-воркеры,
// но можно указать для полноты:
// driftWorkerUri: Uri.parse('/drift_worker.js'),
),
// Можно также явно указать тип хранилища, если нужно (по умолчанию IndexedDB)
// storage: DriftWebStorage.indexedDb('db'),
// или localStorage, если IndexedDB не поддерживается/нежелателен
// storage: DriftWebStorage.localStorage('db'),
),
);
}