Расположение базы данных Flutter sqflite на рабочем столеLinux

Ответить
Anonymous
 Расположение базы данных Flutter sqflite на рабочем столе

Сообщение Anonymous »

Как изменить имя файла базы данных на собственный путь, например папку вашего проекта, во Flutter, используя пакет Sqflite на рабочем столе?
Когда следующий код запускается в классе с именем DatabaseHelper:

Код: Выделить всё

  Future _initDatabase() async {
// Initialize sqflite as sqflite_common_ffi if you are on desktop
dev.log(" In DatabaseHelper:\n    _initDatabase(): open database.");
if (Platform.isWindows || Platform.isLinux) {
dev.log("     On desktop.");
sqfliteFfiInit();
}else{
dev.log("     On mobile.");
}
databaseFactory = databaseFactoryFfi;
final databasePath = await databaseFactory.getDatabasesPath();
print("Databese path: ======> $databasePath");

final path = p.join(databasePath, SqlExp.fileName);

return await databaseFactory.openDatabase(
path,
options: OpenDatabaseOptions(
version: SqlExp.version,
onCreate: _onCreate,
),
);
}
Вывод:

Код: Выделить всё

[log]   In  DatabaseHelper:
[log]       _initDatabase(): open database.
[log]         On desktop.
flutter: Databese path: ======> /home/(pc-hostname)/Flutter/projects/(projectName)/.dart_tool/sqflite_common_ffi/databases
Но запрошенный результат аналогичен:

Код: Выделить всё

/home/(pc-hostname)/Flutter/projects/(projectName)/.databases/customPath
GetDatabasesPath() не позволяет вам этого сделать. Есть ли функция во Flutter или лучше в Dart (если возможно, без внешнего пакета), которая позволяет вам получить текущий рабочий каталог, и если такая функция есть, нормально ли или более оптимально работать с ней в долгосрочной перспективе вместо getDatabasesPath(), поставляемая с пакетом Sqflite, которая должна хорошо работать при сборе, или я ошибаюсь?
Я пробую getApplicationDocumentsDirectory() из path_provider package, но я ожидаю, что в папке моего проекта будет собственный каталог пути, я не хочу, чтобы пользователь так легко получал доступ к базе данных.

Подробнее здесь: https://stackoverflow.com/questions/786 ... on-desktop
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»