Init
This commit is contained in:
commit
295625c70f
151 files changed
+10677
No files matched your search
@@ -0,0 +1,12 @@
|
||||
// lib/database/database_connection/connection.dart
|
||||
import 'package:drift/drift.dart';
|
||||
|
||||
// Этот файл служит базой для условного импорта.
|
||||
// Реализации находятся в connection_web.dart и connection_native.dart.
|
||||
|
||||
// Определим функцию-заглушку, чтобы основной файл database.dart
|
||||
// мог ее импортировать без ошибок анализатора.
|
||||
// Во время выполнения будет вызвана реализация из соответствующего
|
||||
// файла (web или native) благодаря условному импорту.
|
||||
QueryExecutor connect() => throw UnsupportedError(
|
||||
'Stub connect function should not be called. Ensure conditional imports are set up correctly.');
|
||||
@@ -0,0 +1,33 @@
|
||||
// lib/database/database_connection/connection_native.dart
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:drift/drift.dart';
|
||||
import 'package:drift/native.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:path/path.dart' as p;
|
||||
// sqlite3_flutter_libs и sqlite3 импортируются для возможной тонкой настройки,
|
||||
// но часто NativeDatabase справляется автоматически.
|
||||
// import 'package:sqlite3_flutter_libs/sqlite3_flutter_libs.dart';
|
||||
// import 'package:sqlite3/sqlite3.dart';
|
||||
|
||||
QueryExecutor connect() {
|
||||
print("Connecting to database using NativeDatabase (Lazy)");
|
||||
// Используем LazyDatabase для отложенной инициализации на нативных платформах
|
||||
return LazyDatabase(() async {
|
||||
// Получаем папку для хранения документов приложения
|
||||
final dbFolder = await getApplicationDocumentsDirectory();
|
||||
// Создаем путь к файлу 'db.sqlite' в этой папке
|
||||
final file = File(p.join(dbFolder.path, 'db.sqlite'));
|
||||
print("Database file path (Native): ${file.path}"); // Логируем путь для отладки
|
||||
|
||||
// Настройка библиотеки sqlite3 (обычно не требуется для Android/iOS/macOS с sqlite3_flutter_libs)
|
||||
// if (Platform.isWindows || Platform.isLinux) {
|
||||
// // Может потребоваться дополнительная настройка для Desktop
|
||||
// // await applyWorkaroundToOpenSqlite3Library();
|
||||
// }
|
||||
|
||||
// Используем NativeDatabase для открытия соединения
|
||||
// logStatements: true полезен для отладки SQL-запросов
|
||||
return NativeDatabase(file, logStatements: false);
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
// lib/database/database_connection/connection_web.dart
|
||||
import 'package:drift/drift.dart';
|
||||
import 'package:drift/web.dart';
|
||||
// import 'package:drift/wasm.dart'; // <-- Удалить этот импорт, он больше не нужен здесь
|
||||
|
||||
QueryExecutor connect() {
|
||||
print("Connecting to database using WebDatabase (default configuration)");
|
||||
|
||||
// Используем стандартный конструктор WebDatabase.
|
||||
// Drift попытается автоматически найти и загрузить sqlite3.wasm по пути /sqlite3.wasm
|
||||
return WebDatabase(
|
||||
'db', // Имя базы данных в IndexedDB
|
||||
logStatements: false,
|
||||
);
|
||||
}
|
||||
Reference in new issue
Block a user