В настоящий момент серверная платформа LSS лучше всего адаптирована для совместной работы с SQL сервером Postgresql. На его примере и рассмотрим внесение изменений в структуру БД.
Необходимо создать пустую БД и выполнить на ней скрипт pgsql-systable.sql, см Требования к структуре базы данных.
Существует несколько конкурирующих технологий совместной работы команды программистов над проектом.
В настоящий момент наиболее проработанная технология - режим локальной работы. Разберем его подробнее.
В этом режиме есть 3 разновидности ролей для серверов, в данном случае под сервером мы понимаем сочетание SQL сервера PostGreSQL, базы данных и комплекта ПО бизнес логики проекта.
Для работы в режиме локальной работы необходимо в конфигурационных настройках задать:
/// Локальный режим работы разработчика с сервером БД $config['sqlLocalMode']=true; /// Роль подключаемого сервера БД: local|dev|prod $config['sqlServerRole']='local';
Для внесения изменений в структуру базы данных используется технология версион-скриптов. Каждый скрипт оформляется в виде отдельного файла. Программисты обмениваются этими файлами через git.
В меню проекта: «Разработка/Утилиты» присутствует утилита «Актуализация базы данных». При ее запуске последовательно, в алфавитном порядке, выполняются файлы версион-скриптов, ранее не выполнявшиеся на этой базе данных. Имя каждого выполненного файла запоминается в БД (таблица sysdbversion), и потом файлы с такими, сохраненными именами, больше не запускаются.
После выполнения всех новых версион-скриптов структура БД становится актуальной.
Помимо актуальной структуры, база данных должна быть наполнена актуальным содержимым системных таблиц. Содержимое системных таблиц правится на сервере dev, затем с помощью утилиты «Экспорт системных справочников в виде SQL скрипта» формируется скрипт, актуализирующий содержимое системных таблиц. Для гарантии его корректной работы структура БД должна быть актуальна. Соответственно, сначала необходимо выполнить утилиту «Актуализация базы данных», а затем скрипт, обновляющий содержимое системных таблиц.
YYYY-MM-DD-HH-II-<команда разработчиков>-<разработчик>.sql
call cmd_dropviews('имя таблицы');
эта процедура удаляет все автоматически формируемые представления view для заданной таблицы.
В режиме локальной разработки: