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