C помощью функционала /save_restore
у разработчика или администратора решения ozma.io есть возможность в любой момент работы с инстансом сохранить
Для сохранения схем(ы) перейдите по ссылке
https://<instance-name>.ozma.org/save_restore
В блоке "Сохранить схему" можно ввести название нужных схем через запятую, либо оставить поле пустым для сохранения всех схем.
Флаг "Пропустить системные таблицы" не добавляет в архив схемы public
и funapp
.
Вы можете редактировать файлы локально, придерживаясь правильной структуры файлов каждого типа. Хорошей идеей может быть помещение их под версионный контроль
У нас есть планы добавить в продукт контроль версий и удобные средства для локальной разработки.
Архив со схемами (или одной схемой) можно загрузить в решение снова. При этом:
Загрузка схем в решение производится в той же панели
https://<instance-name>.ozma.org/save_restore
В блоке "Восстановить схему" выберите .zip архив со схемами (название архива может быть любым, но структура каталогов фиксирована).
Опционально с помощью флага "Удалить другие схемы" можно удалить все схемы кроме загружаемых (данные из таблиц, описанных в удаляемых схемах, тоже будут удалены)
Архив состоит из каталогов со схемами (имя каталога = имя схемы). В каждом каталоге могут быть подкаталоги:
.yaml
файлов с описанием сущностей (таблиц бд).funql
файлов, содержащих код FunQL пользовательских представлений.mjs
-файлы с кодом процедур (экшнов).mjs
и .yaml
-файлов с кодом триггера и его описанием соответственно.mjs
-файлы с кодом модулей.yaml
-ы с описанием пользовательских ролей.yaml
-ы с данными из соответствующих таблиц (например /custom/funapp/color_themes.yaml
- данные из таблицы funapp.color_themes
)Используется для хранения в архиве со схемой данных из связанных таблиц. Для этого необходимо заполнить поле save_restore_key
для таблицы, данные из которой будут сохраняться.
Save_restore_key
- альтернативный ключ (из заданных в unique_constraints
), который используется для сохранения и восстановления данных из таблицы. Первый столбец ключа должен быть ссылкой либо на public.schemas
, либо на другую сущность с заданным save_restore_key
. Рекурсия не поддерживается.
Пример: сохранение данных с цветовыми темами и вариантами из таблиц
funapp.color_themes
иfunapp.color_variants
вместе со схемойadmin
если они принадлежат этой схеме (color_themes.schema_id = 'admin'
).
Дляfunapp.color_themes
:
- Создан альтернативный ключ
name
-schema_id, name
- В
save_restore_key
указан этот альтернативный ключДля
funapp.color_variants
:
- Создан альтернативный ключ
name
-theme_id, name
- В
save_restore_key
указан этот альтернативный ключЕсли в решении будут записи
funapp.color_themes
сschema_id = 'admin',
то в архиве со схемойadmin
в папкеcustom
будутyaml
-файлы с данными относящимися кadmin
из этих двух таблиц.
color_themes.yaml
- localized_name: en: Light ru: Светлая name: light - localized_name: en: Dark ru: Темная name: dark
color_variants.yaml
- background: '#dc3545' border: '#ffffff' foreground: '#e8e6e3' name: danger theme_id: name: light - background: '#44475a' border: foreground: name: interface theme_id: name: dark - ...