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 - ...