Команды командной строки для обслуживания NetDB

В составе дистрибутива NetDB поставляется набор скриптов, обеспечивающих выполнение системных management-команд для действий из командной строки.

Все действия выполняются под соответствующим виртуальным окружением.

Для включения виртуального окружения (virtualenv) необходимо перейти в каталог приложения (например, netdbapp):

$ cd  /home/netdbuser/apps/netdbapp/

И выполнить команду:

$ source ../../bin/activate

Для получения полного списка команд необходимо выполнить команду help:

$ ./dev help

Изменение пароля пользователя-администратора

Для смены пароля пользователя-администратора используется команда reset-admin:

$ ./dev help reset_admin
Usage: ./dev reset_admin [options]

Сбросить пароль админа (по умолчанию на "admin").

Options:
  --password=PASSWORD   Новый пароль админа
  --version             show program's version number and exit
  -h, --help            show this help message and exit

Возврат в заданный момент времени

В системе существует возможность вернуть базу данных стенда на состояние в заданный момент времени. Для этого используется команда revert_to:

$ ./dev help revert_to
Usage: ./dev revert_to дата

Возвращает всю базу на состояние в заданный момент времени

формат даты один из: %Y-%m-%d %H:%M:%S, %Y, %d.%m.%Y, %Y-%m-%d,
       %d.%m.%Y %H:%M:%S, %m.%Y, %Y-%m-%d %H:%M, %d.%m.%Y %H:%M

Проверка корректности значения временных интервалов записей базы данных

Запись в базе данных содержит интервал времени ее действия. Команда documentscheck проверяет непротиворечивость этих данных:

$ ./dev help documentscheck
Usage: ./dev documentscheck [options]

Document subclasses integrity check

Options:
  -v VERBOSITY, --verbosity=VERBOSITY
     Verbosity level; 0=minimal output, 1=normal output, 2=verbose
     output, 3=very verbose output

Удаление истории изменений

drop_retrospection_data безвозвратно удаляет исторические данные, оставляя только актуальные на данный момент (см. Компонент «Ретроспекция»):

$ ./dev help drop_retrospection_data
Usage: ./dev drop_retrospection_data [options]

Remove version history from all document subclasses

Options:
  -v VERBOSITY, --verbosity=VERBOSITY
     Verbosity level; 0=minimal output, 1=normal output, 2=verbose
     output, 3=very verbose output

Устранение перекрытия интервалов

Если documentscheck сообщает о наличии перекрывающихся интервалов действия записей, то эта команда решает проблему:

$ ./dev help fixdocuments_overlapping
Usage: ./dev fixdocuments_overlapping [options]

Fix overlapping interval errors for Document subclasses

Options:
  -v VERBOSITY, --verbosity=VERBOSITY
     Verbosity level; 0=minimal output, 1=normal output, 2=verbose
     output, 3=very verbose output

Восстановление уникальности ссылок element

Сообщение о неуникальности ссылок element выдает команда netdbcheck. Для корректировки значений используется команда:

$ ./dev help fixnetdb_element_uniqueness
Usage: ./dev fixnetdb_element_uniqueness [options]

NetDb fix element uniqueness

Options:
  -v VERBOSITY, --verbosity=VERBOSITY
     Verbosity level; 0=minimal output, 1=normal output, 2=verbose
     output, 3=very verbose output

Удаление лишних ссылок element

Корректирует базу данных NetDB для устранения сообщений от netdbcheck extra element:

$ ./dev help fixnetdb_extra_element
Usage: ./dev fixnetdb_extra_element [options]

Fix extra elements (trancate document_start)

Options:
  -v VERBOSITY, --verbosity=VERBOSITY
     Verbosity level; 0=minimal output, 1=normal output, 2=verbose
     output, 3=very verbose output

Устранение неуникальности ссылок

Устранение важного нарушения в структуре данных NetDB, могущего привести к нарушению работы системы, (сообщение от netdbcheck):

$ ./dev help fixnetdb_link_uniqueness
Usage: ./dev fixnetdb_link_uniqueness [options]

NetDb fix links uniqueness

Options:
  -v VERBOSITY, --verbosity=VERBOSITY
     Verbosity level; 0=minimal output, 1=normal output, 2=verbose
     output, 3=very verbose output

Проверка целостности данных

Основная команда для проверки целостности структуры данных NetDB. Выдает сообщения о выявленных нарушениях в структуре, которые могут быть устранены соответствующими fix… командами:

$ ./dev help netdbcheck
Usage: ./dev netdbcheck [options]

NetDb integrity check

Options:
  -v VERBOSITY, --verbosity=VERBOSITY
     Verbosity level; 0=minimal output, 1=normal output, 2=verbose
     output, 3=very verbose output

Данную команду можно выполнять периодически для своевременного выявления нарушений в структуре данных и их устранения.

Последовательное устранение всех нарушений

Команда fixnetdb последовательно выполняет все коррекции из fix… команд:

$ ./dev help fixnetdb
Usage: ./dev fixnetdb [options]

NetDb fix all of documents and netdb

Options:
  -v VERBOSITY, --verbosity=VERBOSITY
     Verbosity level; 0=minimal output, 1=normal output, 2=verbose
     output, 3=very verbose output

Партиционирование

Команда partition перестраивает БД на другой принцип хранения данных:

$ ./dev partition

Особенности:

  • не поддерживает больше 10000 показателей
  • не совместима с memdb
  • замедляет загрузку данных
  • НЕОБРАТИМО: перед запуском нужно сделать дамп БД

Синхронизация выбранного задания или источника

Команда adapters_sync выполняет синхронизацию выбранного задания или источника:

./dev help adapters_sync
Usage: ./dev adapters_sync [options]

 Выполнить синхронизацию заданного задания или источника.


  Options:
  -v VERBOSITY, --verbosity=VERBOSITY
                        Verbosity level; 0=minimal output, 1=normal output,
                        2=verbose output, 3=very verbose output
  --settings=SETTINGS   The Python path to a settings module, e.g.
                        "myproject.settings.main". If this isn't provided, the
                        DJANGO_SETTINGS_MODULE environment variable will be
                        used.
  --pythonpath=PYTHONPATH
                        A directory to add to the Python path, e.g.
                        "/home/djangoprojects/myproject".
  --traceback           Raise on exception
  --sync-task=SYNC_TASK
                        Выполнить задание по
                        синхронизации по его id
  --adapter-id=ADAPTER_ID
                        Загрузить данные по id
                        коннектора, задания
                        игнорируются
  --version             show program's version number and exit