====== Технология внесения изменений в структуру базы данных ====== В настоящий момент серверная платформа LSS лучше всего адаптирована для совместной работы с SQL сервером Postgresql. На его примере и рассмотрим внесение изменений в структуру БД. ===== Первоначальное создание базы данных ===== Необходимо создать пустую БД и прогнать на ней скрипт pgsql-systable.sql, см [[db-datastructure-postgresql]]. ===== Режим локальной разработки ===== Существует несколько конкурирующих технологий совместной работы команды программистов над проектом. В настоящий момент наиболее проработанная технология - **режим локальной работы**. Разберем его подробнее. В этом режиме есть 3 разновидности ролей для серверов: * Роль сервера **local** - компьютер разработчика. Каждый разработчик работает со своей копией БД, разработчики обмениваются между собой изменениями через git. * Роль сервера **dev** - эталонный общий сервер команды разработчиков. На нем развернут последний актуальный релиз ПО проекта. Именно на нем следует править содержимое системных таблиц. * Роль сервера **prod** - сервера развернуты у заказчика (заказчиков может быть несколько, у каждого свой), БД содержит ценные пользовательские данные, версия ПО проекта не самая последняя, свободный доступ программистов к серверу ограничен. Для работы в этом режиме необходимо в конфигурационных настройках выставить: /// Локальный режим работы разработчика с сервером БД $config['sqlLocalMode']=true; /// Роль подключаемого сервера БД: local|dev|prod $config['sqlServerRole']='local'; ==== Внесение изменений в структуру базы данных ==== Для внесения изменений в структуру базы данных используется технология версион-скриптов. Каждый скрипт оформляется в виде отдельного файла. Программисты обмениваются этими файлами через git. В меню проекта: "Разработка/Утилиты" присутствует утилита "Актуализация базы данных". При ее запуске последовательно, в алфавитном порядке, выполняются файлы версион-скриптов. Имя каждого выполненного файла запоминается в БД (таблица **sysdbversion**), и потом файлы с такими, сохраненными именами, больше на этой базе данных не запускаются. После выполнения всех новых версион-скриптов структура БД становится актуальной.