Skip to content

Миграция на SQLite

Andrei Kurosh edited this page Jan 1, 2024 · 1 revision

Мотивация

Начиная с версии 6.0 в Bonsai появляется поддержка БД SQLite в дополнение к PostgreSQL, который использовался ранее. SQLite становится базой данных по-умолчанию для создания новых проектов, поскольку обладает следующими преимуществами:

  • Автоматически обновляется вместе с приложением
  • Удобнее для создания бэкапов (не нужно делать dump, достаточно просто скопировать файл)
  • Занимает 1 мб вместо контейнера на 300 мб для PostgreSQL

SQLite также известен своей стабильностью за счет крайне высокого покрытия тестами и заявленной поддержки как минимум до 2050 года, что очень хорошо согласуется с идеологией Bonsai.

Миграция

Чтобы мигрировать БД на SQLite, достаточно сделать следующее:

  1. Добавить в переменные окружения контейнера следующие записи:

    - ConnectionStrings__EmbeddedDatabase=Data Source=/app/App_Data/bonsai.db
    - ConnectionStrings__UseEmbeddedDatabase=true
    
  2. Настроить для контейнера монтирование папки /app/App_Data во внешнюю среду, по аналогии с папкой для медиа-файлов.

  3. Перезапустить контейнер, обновившись до последней версии, и дождаться его старта.

Готово! Все данные будут автоматически перенесены в SQLite. Для страховки убедитесь, что в папке /app/App_Data появился файл bonsai.db.

Теперь контейнер с PostgreSQL можно отключить.

Что делать, если я хочу оставить все как есть?

Если вы предпочитаете использовать PostgreSQL - для вас всё остается как раньше, ничего делать не нужно.

Что делать, если я хочу мигрировать обратно?

Вы можете переключить используемую БД обратно на PostgreSQL, выставив значение ConnectionStrings__UseEmbeddedDatabase=false.

ВНИМАНИЕ! Данные переносятся только из PostgreSQL в SQLite, но не наоборот! В этом случае вы вернетесь к состоянию БД, которое было до миграции.