⟵ сюдатуда ⟶
  • Установка
  • Установка на Ubuntu
  • Обновления
  • Установка PRO
  • Бэкапы
  • Бэкапирование базы данных
  • Консольной утилитой bin/totum
  • Вручную через pg_dump
  • Бэкапирование по расписанию
  • Бэкапирование файлов
  • Восстановление бэкапа базы данных
  • Восстановление через консольную утилиту bin/totum
  • Восстановление вручную через PSQL
  • Multi/no-multi
  • Консольная утилита bin/totum
  • Основы для пользователей
  • Интерфейс и компоновка
  • Таблицы и их параметры
  • Префильтр
  • Поля и их параметры
  • Синтаксис
  • Код, действия, форматирование
  • Реляционные взаимосвязи
  • Порядок расчета и единицы пересчета
  • Сравнения
  • Функции
  • Отладка
  • Автозаполнение расчетных и временных
  • Дублирование строк и циклов
  • Печать и CSV
  • API
  • Роли и пользователи
  • Нотификации
  • Действия по расписанию
  • Системные таблицы
  • Дополнительные интерфейсы
  • Структура файлов
  • Структура базы
  • [PRO] Деревья
  • [PRO] Анонимные таблицы
  • [PRO] Внешние формы
  • [PRO] Экспорт и импорт таблиц
  • [PRO] MeiliSearch
  • [PRO] Базы данных
  • [PRO] Настройка CSS
  • [PRO] Custom docs
  • [PRO] LDAP AD
  • [PRO] Версии файлов
  • [PRO] List-unsubscribe
  • [PRO] Динамические поля
  • [PRO] Only Office
  • [PRO] Auth Tokens
  • [PRO] 2FA
  • [PRO] Superlang
  • [PRO] Profiler
  • [PRO] Подключение функций
  • [SRV] Подключение
  • [SRV] Пользовательские возможности
  • [SRV] XLSX/DOCX генераторы
  • [SRV] chatGPT
  • Бэкапы

    Бэкапирование базы данных

    Конечным исполнителем всех операций являются pg_dump и psql. Если вы создали бэкап на одном сервере, а восстанавливаете на другом — убедитесь что вы идете с повышением версии PostgreSQL командой psql -V. При понижении версии бэкап скорее всего развернут не будет.

    Консольной утилитой bin/totum

    Выполните из папки тотума (для multi смотрите дальше):

    bin/totum schema-backup file_dump.sql
    
    # можно не переносить логи и автоматически сжимать в gz:
    
    bin/totum schema-backup --no-logs --gz file_dump.sql
    
    # можно не переносить некоторые таблицы:
    
    bin/totum schema-backup --no-content="table_name_1,table_name_2" file_dump.sql
    
    

    Если мы дампируем multi, то помимо других параметров необходимо указать какую конкретную схему:

    bin/totum schema-backup --schema="shema_name" prod_dump.sql
    
    

    Имя схемы

    Вручную через pg_dump

    Создаем дамп. Выполняем из корневой папки Тотум. Замените USER и PASSWORD на соответствующие вашей БД.

    SCHEMA_NAME — имя схемы. Посмотреть можно в любой таблице в Тотум в верхнем правом углу.

    pg_dump -O --dbname=postgresql://USER:PASSWORD@LOCALHOST:5432/DB_NAME --schema="SCHEMA_NAME" > db_backup_name.sql
    
    
    • -O — означает без owner, те этот дамп можно будет восстановить на другом хосте.

    • db_backup_name.sql — вы можете создать папку backups в корневой папке тотума и указать полный или относительный путь до нее вместе с название файла копии.

    bin/totum schema-backup выполняет команду pg_dump исключая лог внешних синхронизаций и временные таблицы!

    Полная команда такая:

    pg_dump -O --dbname=postgresql://USER:PASSWORD@LOCALHOST:5432/DB_NAME --schema="SCHEMA_NAME" --no-tablespaces --exclude-table-data='_tmp_tables' --exclude-table-data='_bfl' | grep -v '^--' > db_backup_name.sql
    

    Бэкапирование по расписанию

    Вы можете поставить создание дампа в cron в самом Тотум, использовав функцию execSSH.

    Пример кода Totum создающего копии в корневой папке тотума:

    PATH_TO_TOTUM_FOLDER — замените на путь к папке Тотум. Посмотреть можно выполнив pwd в консоли сервера.

    Вторым действием удаляет 7-дневный файл. Ставить в крон на исполнение 1 раз в день.

    Для no-mutli:

    = : while(action: $a1; action: $a2)
    
    a1: execSSH(ssh: "cd ~/totum-mit && bin/totum schema-backup --gz '%schema%-%Y%-%m%-%d%.sql'")
    
    a2: execSSH(ssh: str`"cd ~/totum-mit && rm SCHEMA_NAME-" + $dm + ".sql.gz"`)
    
            dm: dateAdd(date: $#nd; days: -7; format: "Y-m-d")
    
    // замените SCHEMA_NAME на ваше имя схемы — посмотрите в созданном ранее бэкапе
    
    

    Если выполняете это в multi, то в команде создания добавьте перед --gz параметр --schema='SCHEMA_NAME' заменив SCHEMA_NAME на имя схемы:

    = : while(action: $a1; action: $a2)
    
    a1: execSSH(ssh: "cd ~/totum-mit && bin/totum schema-backup --schema='SCHEMA_NAME' --gz '%schema%-%Y%-%m%-%d%.sql'")
    
    a2: execSSH(ssh: str`"cd ~/totum-mit && rm SCHEMA_NAME-" + $dm + ".sql.gz"`)
    
            dm: dateAdd(date: $#nd; days: -7; format: "Y-m-d")
    
    // замените SCHEMA_NAME на ваше имя схемы — посмотрите в созданном ранее бэкапе
    
    

    Если при выполнении Тотум выдасть предупреждение о блокировке execSSH — снимите в Conf.php в корневой папке установки комментарий со строки /* protected $execSSHOn = true;*/ должно быть -> protected $execSSHOn = true;

    Бэкапирование файлов

    Файлы расположены ~/TOTUM_FOLDER/http/fls.

    Для multy ~/TOTUM_FOLDER/http/fls/HOST

    Вам нужно бэкапировать эти папку любым способом.

    Восстановление бэкапа базы данных

    Восстановление через консольную утилиту bin/totum

    При выполнении этой операции из корневой папки тотум схема БД полностью заменяется на схему из prod_dump.sql:

    bin/totum schema-replace file_dump.sql  
    

    По умолчанию кроны при загрузке отключаются, можно это отменить:

    bin/totum schema-replace --with-active-crons file_dump.sql 
    

    Если восстанавливается схема в multy, то необходимо указать новую или существующую (для замены) схему:

    # если заменить cуществующую:
    
    bin/totum schema-replace --with-active-crons file_dump.sql schema_name
    
    # если создать новую:
    
    bin/totum schema-replace --with-active-crons file_dump.sql schema_name host.zone
    
    

    Восстановление вручную через PSQL

    Для восстановления заходим в psql и папки в которой лежит файл с бэкапом. Замените USER и PASSWORD на соответствующие вашей БД.

    psql --dbname=postgresql://user:password@localhost:5432/db_name
    

    Переименовываем текущую схему в резерв:

    ALTER SCHEMA имя_схемы RENAME TO имя_резерв;
    
    # enter, точка с запятой в конце строки обязательна
    

    Заливаем восстановление:

    \i имя_файла_бэкапа
    
    # enter без точки с запятой
    

    Проверяете восстановление и если ок, то удаляете переименованную старую схему

    DROP SCHEMA имя_резерв CASCADE;
    
    # enter, точка с запятой в конце строки обязательна
    

    Как посмотреть список всех схем в базе:

    select schema_name from information_schema.schemata;
    
    # enter, точка с запятой в конце строки обязательна
    

    Выходим

    \q
    
    # enter