@kirill-93

Как собрать приложение JS приложение с помощью Electron вместе с БД?

Добрый день! Не силен в разработке приложений с использованием electron, но понадобилось сделать небольшой проект.
Проект - одностраничный CRUD для нескольких сущностей - то есть формы для добавления/редактирования и просмотра записей. Записи хранятся тут же в SQLite.
За основу я взял готовый sqlite-boilderplate для electron.
Все работает и теперь я пытаюсь собрать portable-версию для windows.
Для этого я запускаю
electron-builder build --win portable
, генерируется .exe файл, который действительно portable и все хорошо, но изменения в базе не сохраняются после закрытия программы.
В моем коде при запуске приложения идет проверка, есть ли рядом файл с именем db.sqlite3 и если нет, то создается новый. Так вот, при запуске приложения оно работает, то есть где-то создается этот файл и в него пишутся изменения, но если я закрываю программу и открываю снова, то данных нет. Как будто база исчезает.
В package.json у меня есть (согласно документации) есть свойство files:
"build": {
    "appId": "com.example.electron-boilerplate-sqlite",
    "files": [
      "app/**/*",
      "node_modules/**/*",
      "package.json",
      "db.sqlite3"
    ]
  },

В files я указываю базу и расчитываю, что она "упакуется" в этот портативный exe файл и будет в него вшита.
Что я делаю не так?
Спасибо.
  • Вопрос задан
  • 261 просмотр
Решения вопроса 1
MvcBox
@MvcBox
Software Developer
Код для Electron.js приложений после билда хранится в asar архиве.
Вы не должны упаковывать свою базу в этот архив.
Базу можно создавать, к примеру, рядом с исполняемым файлом приложения.
Удалите db.sqlite3 из списка files, а в своем приложении укажите следующий путь к базе:
`${process.execPath}/db.sqlite3`
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Сбер Санкт-Петербург
от 250 000 ₽
NewGen Vision Санкт-Петербург
от 30 000 до 60 000 ₽
Сбер Москва
от 200 000 ₽
29 нояб. 2021, в 00:20
650 руб./за проект
29 нояб. 2021, в 00:12
500 руб./за проект