Документация Flussonic Watcher

Contents

Миграция и обновление базы данных

В этом разделе приведены инструкции по решению отдельных задач поддержки базы данных, используемой в Watcher.
  • Миграция на PostgreSQL (необходима начиная с версии 19.03)
  • Обновление структуры базы данных вручную (может потребоваться в некоторых случаях, Watcher сообщит об этом)

Миграция с SQLite на PostgreSQL

  1. Сделайте бэкапы этих файлов:

    /etc/flussonic/flussonic.conf

    /opt/flussonic/priv/vsaas.db

  2. Установите последнюю версию Flussonic Watcher с поддержкой SQLite (19.05). Выполните в команной строке следующие команды:

    apt update
    
    apt install  flussonic-watcher=19.05 flussonic=19.05 flussonic-erlang=21.3.6
    
    /etc/init.d/flussonic restart
    

    Подробнее о процессе обновления

  3. Сделайте бэкап всех данных с помощью нашей встроенной утилиты для миграции:

    /opt/flussonic/contrib/watcher backup create
    

    В результате выполнения получится примерно такой файл:

    /var/lib/flussonic/watcher-backups/20190215201434-b62d21842ab7-WatcherBackup.gz

  4. Установите PostgreSQL

    • Для установки PostgreSQL необходимо в консоли под пользователем root выполнить команду:
    apt install postgresql
    
    • Создайте пользователя и базу данных. Для этого выполните по порядку эти команды в консоли. Сначала создадим пользователя с именем vsaas:
    sudo -u postgres createuser -P vsaas
    
    • Система предложит ввести пароль, который будет у пользователя vsaas:
      Enter password for new role: (придумайте и введите пароль супер-админа)
    • После того, как вы введете пароль, нужно сделать это ещё раз:
      Enter it again: (повторите пароль супер-админа)
    • Создайте базу данных vsaas_production с владельцем-созданным пользователем vsaas:
    sudo -u postgres createdb -O vsaas -e -E UTF8 -T template0 vsaas_production
    
    • Ответ системы в случае успешного создания базы данных: CREATE DATABASE vsaas_production OWNER vsaas ENCODING 'UTF8' TEMPLATE template0
  5. Отредактируйте строку database в файле конфигурации /etc/flussonic/flussonic.conf:

    database postgresql://vsaas:VSAAS_PASSWORD@localhost/vsaas_production;

    Замените VSAAS_PASSWORD на пароль, который вы указали при создании пользователя vsaas. Для редактирования файла можно воспользоваться редактором nano.

  6. Перезагрузите сервис Flussonic:

    /etc/init.d/flussonic restart
    
  7. Восстановите данные из файла, созданного утилитой для миграции:

    /opt/flussonic/contrib/watcher backup restore -d 20190215201434
    
  8. Зайдите на веб-интерфейс и проверьте, что все работает (все данные на месте).

Обновление структуры БД

Иногда новая версия Flussonic Watcher требует для работы изменений в структуре своей базы данных. В этом случае web-интерфейс покажет сообщение:

Обновление структуры БД

Изменения в структуру базы вносит скрипт watcher_db_migrate.sh.

Важно! Перед запуском скрипта watcher_db_migrate.sh необходимо сделать резервную копию базы.

Для резервного копирования можно использовать утилиту watcher.

После того, как вы сделали резервную копию базы, запустите вручную на сервере скрипт watcher_db_migrate.sh:

/opt/flussonic/contrib/watcher_db_migrate.sh

Пример успешного выполнения скрипта:

# /opt/flussonic/contrib/watcher_db_migrate.sh
INFO  [alembic.runtime.migration] Context impl PostgresqlImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [alembic.runtime.migration] Running upgrade dfd74e510414 -> 1822b8f25e20, agent:model, agent:camera
INFO  [alembic.runtime.migration] Running upgrade 1822b8f25e20 -> 1a71a9477bbb, streamer: cluster_key
INFO  [alembic.runtime.migration] Running upgrade 1a71a9477bbb -> 7a3ab2550cab, streamer_fkey cascade
Restarting Watcher

После этого интерфейс Flussonic Watcher будет снова доступен для работы.

Если в ходе выполнения watcher_db_migrate.sh появится ошибка

alembic.util.exc.CommandError: Can't locate revision identified by 'ebdce5515b6d

то необходимо установить предыдущую используемую вами версию (до даунгрейда либо обновления Watcher) и выполнить:

cd /opt/flussonic/apps/vsaas
/opt/flussonic/contrib/watcher db downgrade