View previous topic :: View next topic |
Author |
Message |
Destiny
Joined: 15 Dec 2015 Posts: 212
|
(Separately) Posted: Fri Oct 29, 2021 21:01 Post subject: |
|
|
ProgMan13
А отчего после использования плагина над файлом рядом возникают 2 файла с тем же именем (и даже с расширением!), но с окончанием "-shm" и "-wal". Явно они нужны были для работоспособности открытия этого формата, но после закрытия плагина им не место на диске. Отчего они не автоудаляются? |
|
Back to top |
|
|
little-brother
Joined: 29 Sep 2021 Posts: 205
|
(Separately) Posted: Sat Oct 30, 2021 02:12 Post subject: |
|
|
Это файлы журнала (изменений в базе), которые используются при работе базы данных, а также для восстановления после внезапного завершения работы приложения посредине транзакции. У вас база данных работает в режиме WAL, т.е. с возможностью, когда можно писать и читать базу в нескольких потоков параллельно (как в больших СУБД).
Переведя базу в режим по умолчанию командой
Code: | pragma journal_mode = delete |
после прекращения работы файл журнала будет удален автоматически. |
|
Back to top |
|
|
Destiny
Joined: 15 Dec 2015 Posts: 212
|
(Separately) Posted: Sat Oct 30, 2021 12:50 Post subject: |
|
|
little-brother wrote: | Переведя базу в режим по умолчанию командой
Код:
pragma journal_mode = delete
после прекращения работы файл журнала будет удален автоматически. |
Приветствую! где-то мы уже пересекались)))
По ответу: если бы это единоразово где-то выставлялось галочкой в общем Setup'e - было бы очень приятно и полезно. А пока что я это вижу как действие над каждой открываемой базой... Да мне проще будет эти файлы удалять, чем эту команду каждый раз вводить. |
|
Back to top |
|
|
little-brother
Joined: 29 Sep 2021 Posts: 205
|
(Separately) Posted: Sat Oct 30, 2021 15:14 Post subject: |
|
|
Дело в том, что данная pragma хранится в базе, в отличии от многих других, т.е. плагин конечно может подключиться к базе, перевести ее в режим delete, а потом при отключении в режим wal, но это не очень хорошо, т.к. при этом меняется файл базы.
Удалять файлы плагин то ж не должен, т.к. если у вас они были до этого, то возможно в них содержится информация, которая не была перенесена в основной файл базы.
Посмотрел свой плагин - он не создает данные файлы. Похоже SQLiteViewer открывает базу в режиме не только чтение (SQLITE_OPEN_READONLY), а в режиме по умолчанию (чтение-запись), потому файлы журнала и создаются. |
|
Back to top |
|
|
Destiny
Joined: 15 Dec 2015 Posts: 212
|
(Separately) Posted: Sat Oct 30, 2021 23:02 Post subject: |
|
|
little-brother wrote: | Посмотрел свой плагин - он не создает данные файлы |
Смотрел и ваш - те же файлы так же рядом((((
но т.к. в этом больше нужных операций и настроек , то выбрал покамест его. Но вот ток проблему бы с этими файлами решить кардинально. |
|
Back to top |
|
|
ProgMan13
Joined: 19 Aug 2009 Posts: 334
|
(Separately) Posted: Mon Nov 01, 2021 01:28 Post subject: |
|
|
Плагин по умолчанию открывает файлы в режиме только для чтения (SQLITE_OPEN_READONLY). Раньше просто выполнялась "'pragma query_only=true". Это чтобы ничего случайно не изменить. Но во втором случае можно выполнять всякие (в том числе "вредные") прагмы.
Базы "в режиме" WAL всегда должны создавать два файла журнала. Но при открытии только для чтения файлы создаются, но не удаляются.
Для изменения режима открытия баз в ini плагина нужно дописать
DatabaseReadOnly=0 |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|