Skip to content

Commit

Permalink
[EDP-DDM-00000] Added doc about data model changes algorithm
Browse files Browse the repository at this point in the history
Change-Id: I94a6cf80bb831abe5874ac91443da7d773fe33a1
(cherry picked from commit c31e86004a24d68b5eee3e3e91bc77365bde0f7b)
(cherry picked from commit 04b306d8dc1fda804b16d819287e562d6c5e0cbc)
(cherry picked from commit 7a15771b4437a2eba2a0dde153c6cd9b4d132ba1)
  • Loading branch information
Anton Tuhai committed Oct 21, 2024
1 parent 7bae676 commit 630b1a8
Show file tree
Hide file tree
Showing 2 changed files with 124 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
= Алгоритм виконання операцій з таблицями та полями в базі даних
include::platform:ROOT:partial$templates/document-attributes/default-set-ua.adoc[]

[#delete-tables]
== Видалення таблиць

=== Крок перший. Аналіз

. Визначити таблиці, які необхідно видалити.
. Визначити чи є в інших таблицях поля з *foreign keys*, що посилаються на таблиці, які необхідно видалити.
. Визначити *Search Conditions*, які створені для таблиць з перших двох пунктів.
. Визначити *Analytics Views*, в яких використовуються поля таблиць з перших двох пунктів.

=== Крок другий. Видалення

Створити *changeSet*-и для:

* видалення *Analytics Views*;
* видалення *Search Conditions*;
* видалення з таблиць полів з *foreign keys*, що посилаються на таблиці, які необхідно видалити;
* видалення таблиць та історичних таблиць.

=== Крок третій. Додавання

Створити *changeSet*-и для:

* створення *Search Conditions* для таблиць, в яких видалили поля з *foreign keys*, що посилалися на таблиці, які видалили;
* створення *Analytics Views* для таблиць, в яких видалили поля з *foreign keys*, що посилалися на таблиці, які видалили.

[#add-tables]
== Додавання таблиць

=== Крок перший. Аналіз

. Визначити таблиці, які необхідно додати.
. Визначити інші таблиці, що будуть посилатися на таблиці (нові поля з *foreign keys*), які необхідно додати.
. Визначити *Search Conditions*, які треба створити для нових таблиць та *Search Conditions*, в які треба додати поля з *foreign keys* на нові таблиці.
. Визначити *Analytics Views*, в яких будуть використовуватись поля нових таблиць та *Analytics Views*, в яких будуть використовуватись поля з *foreign keys* на нові таблиці.

=== Крок другий. Видалення

Створити *changeSet*-и для:

* видалення наявних *Search Conditions*, в яких будуть використовуватись поля з *foreign keys* на нові таблиці (якщо необхідні зміни в наявних *Search Conditions*);
* видалення наявних *Analytics Views*, в яких будуть використовуватись поля з *foreign keys* на нові таблиці (якщо необхідні зміни в наявних *Analytics Views*).

=== Крок третій. Додавання

Створити *changeSet*-и для:

* створення таблиць (історичні таблиці створюються автоматично);
* додавання полів з *foreign keys* на додані таблиці в наявні таблиці;
* створення *Search Conditions* для доданих таблиць та створення *Search Conditions* для таблиць, в які додали поля з *foreign keys* на додані таблиці;
* створення *Analytics Views* для доданих таблиць та створення *Analytics Views* для таблиць, в які додали поля з *foreign keys* на додані таблиці.

[#add-fields]
== Додавання полів в таблицях

=== Крок перший. Аналіз

. Визначити таблиці, в які необхідно додати поля.
. Визначити інші таблиці, в яких додані поля будуть виступати у якості *foreign keys*.
. Визначити *Search Conditions*, які створені для таблиць, в які необхідно додати поля, та *Search Conditions*, в яких додані поля будуть виступати у якості *foreign keys*.
. Визначити *Analytics Views*, в яких використовуються поля таблиць, в які необхідно додати поля, та *Analytics Views*, в яких додані поля будуть виступати у якості *foreign keys*.

=== Крок другий. Видалення

Створити *changeSet*-и для:

* видалення *Search Conditions* для таблиць, в які будуть додані поля, та *Search Conditions*, в яких додані поля будуть виступати у якості *foreign keys* (якщо необхідні зміни в наявних *Search Conditions*);
* видалення *Analytics Views* для таблиць, в яких будуть використовуватись додані поля та *Analytics Views*, в яких додані поля будуть виступати у якості *foreign keys* (якщо необхідні зміни в наявних *Analytics Views*).

=== Крок третій. Додавання

Створити *changeSet*-и для:

* додавання полів в таблиці;
* додавання полів таблиць, в яких додані поля будуть виступати у якості *foreign keys*;
* створення *Search Conditions* для таблиць, в які додали поля, та *Search Conditions*, в яких додані поля будуть виступати у якості *foreign keys* (якщо необхідні зміни в наявних *Search Conditions*);
* створення *Analytics Views* для таблиць, в яких будуть використовуватись додані поля, та *Analytics Views*, в яких додані поля будуть виступати у якості *foreign keys* (якщо необхідні зміни в наявних *Analytics Views*).

[#delete-fields]
== Видалення полів в таблицях

IMPORTANT: Не можна видаляти поля таблиці, в яких зберігається *primary key*.

=== Крок перший. Аналіз

. Визначити поля таблиць, які необхідно видалити.
. Визначити таблиці, в яких поля, що видаляються, виступають у якості *foreign keys*.
. Визначити *Search Conditions*, які використовують поля цих таблиць, та *Search Conditions*, в яких ці поля виступають у якості *foreign keys*.
. Визначити *Analytics Views*, в яких використовуються поля цих таблиць, та *Analytics Views*, в яких ці поля виступають у якості *foreign keys*.

=== Крок другий. Видалення

Створити *changeSet*-и для:

* видалення *Search Conditions* з полями таблиць, які необхідно видалити, та *Search Conditions*, в яких ці поля виступають у якості *foreign keys*;
* видалення *Analytics Views* з полями таблиць, які необхідно видалити, та *Analytics Views*, в яких ці поля виступають у якості *foreign keys*;
* видалення полів таблиць, в яких поля, що видаляються, виступають у якості *foreign keys*;
* видалення полів таблиць.

=== Крок третій. Додавання

Створити *changeSet*-и для:

* створення *Search Conditions* для таблиць, в яких видалили поля, та *Search Conditions*, в яких видалені поля виступали у якості *foreign keys*,
* створення *Analytics Views* для таблиць, в яких видалили поля, та *Analytics Views*, в яких видалені поля виступали у якості *foreign keys*.

[#change-field-format]
== Зміна формату полів у таблицях

=== Крок перший. Аналіз

Визначити поля таблиць, в яких необхідно змінити формат.

=== Крок другий. Змінення

Створити *changeSet*-и для:

* змінення форматів полів таблиць.

IMPORTANT: При зміні формату полів не змінюється їх назва. Якщо немає блоків з логічного порівняння даних, то вносити зміни до *Analytics Views* та *Search Conditions* необов'язково. Якщо є блоки з логічним порівнянням даних, то треба вносити зміни до тих блоків (видалити старі *Search Conditions*, *Analytics Views* та створити нові після зміни формату полів). Інакше можливі помилки при виконанні збірки регламенту.
1 change: 1 addition & 0 deletions docs/ua/modules/registry-develop/partials/nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,7 @@ include::registry-develop:partial$registry-admin/abandoned-processes/nav.adoc[]
**** xref:registry-develop:data-modeling/data/physical-model/liquibase-introduction.adoc[]
**** xref:registry-develop:data-modeling/data/physical-model/liquibase-standard-change-types.adoc[]
**** xref:registry-develop:data-modeling/data/physical-model/liquibase-ddm-ext.adoc[]
**** xref:registry-develop:data-modeling/data/physical-model/data-model-changes-algorithm.adoc[]
//SEARCH CONDITIONS
include::registry-develop:partial$data-modeling/data/physical-model/sc/nav.adoc[]
//SOME LIQUIBASE SCENARIOS
Expand Down

0 comments on commit 630b1a8

Please sign in to comment.