Инструменты пользователя

Инструменты сайта


lss-server-php:db-datastructure-versionscript

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
lss-server-php:db-datastructure-versionscript [2026/01/11 17:47] – [Внесение изменений в структуру базы данных] madminlss-server-php:db-datastructure-versionscript [2026/06/15 16:36] (текущий) – [Написание версион-скриптов] madmin
Строка 1: Строка 1:
 ====== Технология внесения изменений в структуру базы данных ====== ====== Технология внесения изменений в структуру базы данных ======
-В настоящий момент серверная платформа LSS лучше всего адаптирована для совместной работы с SQL сервером Postgresql. На его примере и рассмотрим внесение изменений в структуру БД.+В настоящий момент полноценно реализована поддержка серверов **PostgreSql** и **SQlite**. На их примере и рассмотрим внесение изменений в структуру БД.
 ===== Первоначальное создание базы данных ===== ===== Первоначальное создание базы данных =====
-Необходимо создать пустую БД и выполнить на ней скрипт pgsql-systable.sql, см [[db-datastructure-postgresql]].+Необходимо создать пустую БД и выполнить на ней скрипты создания и инициализации системных таблиц 
 +  * для **PostgreSql** скрипты **pgsql-systable-create.sql** и **pgsql-systable-init.sql**, см [[db-datastructure-postgresql]]. 
 +  * для **SQlite** скрипты **sqlite-systable-create.sql** и **sqlite-systable-init.sql**, см [[db-datastructure-sqlite]]. 
 ===== Режим локальной разработки ===== ===== Режим локальной разработки =====
 Существует несколько конкурирующих технологий совместной работы команды программистов над проектом. Существует несколько конкурирующих технологий совместной работы команды программистов над проектом.
Строка 8: Строка 11:
 В настоящий момент наиболее проработанная технология - **режим локальной работы**. Разберем его подробнее. В настоящий момент наиболее проработанная технология - **режим локальной работы**. Разберем его подробнее.
  
-В этом режиме есть 3 разновидности **ролей** для серверов, в данном случае под сервером мы понимаем сочетание **SQL сервера** PostGreSQL, **базы данных** и комплекта ПО **бизнес логики** проекта.+В этом режиме есть 3 разновидности **ролей** для серверов, в данном случае под сервером мы понимаем сочетание **SQL сервера**, **базы данных** и комплекта ПО **бизнес логики** проекта.
   * Роль сервера **local** - компьютер разработчика. Каждый разработчик работает со своей копией БД, разработчики обмениваются между собой изменениями через git.   * Роль сервера **local** - компьютер разработчика. Каждый разработчик работает со своей копией БД, разработчики обмениваются между собой изменениями через git.
   * Роль сервера **dev** - эталонный общий сервер команды разработчиков. На нем развернут последний актуальный релиз ПО проекта. Именно на нем следует править содержимое системных таблиц.   * Роль сервера **dev** - эталонный общий сервер команды разработчиков. На нем развернут последний актуальный релиз ПО проекта. Именно на нем следует править содержимое системных таблиц.
Строка 35: Строка 38:
   * нельзя вносить изменения в версион-скрипт после того, как он откинут в ветку git, предназначенную для совместной работы   * нельзя вносить изменения в версион-скрипт после того, как он откинут в ветку git, предназначенную для совместной работы
   * SQL код версион-скриптов выполняется в **режиме репликации**, при этом отключены все constraint, в том числе проверка ссылочной целостности и каскадные удаления.   * SQL код версион-скриптов выполняется в **режиме репликации**, при этом отключены все constraint, в том числе проверка ссылочной целостности и каскадные удаления.
-  * удаление или изменение типа существующих полей таблицы в версион-скрипте может не сработать из-за наличия связанного с таблицей view представления. Для решения проблемы служит вызов процедуры: <code>call cmd_dropviews('имя таблицы');</code> эта процедура удаляет все автоматически формируемые представления view для заданной таблицы.+  * Для **PostgreSQL** удаление или изменение типа существующих полей таблицы в версион-скрипте может не сработать из-за наличия связанного с таблицей view представления. Для решения проблемы служит вызов процедуры: <code>call cmd_dropviews('имя таблицы');</code> эта процедура удаляет все автоматически формируемые представления view для заданной таблицы. Для **SQlite** такой проблемы нет.
 ==== Подведем итоги ==== ==== Подведем итоги ====
 В режиме **локальной разработки**: В режиме **локальной разработки**:
lss-server-php/db-datastructure-versionscript.1768142875.txt.gz · Последнее изменение: 2026/01/11 17:47 — madmin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki