Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commite19dde6

Browse files
Flyway guide text ready, some pics need replacements
1 parent7b27644 commite19dde6

File tree

1 file changed

+10
-42
lines changed

1 file changed

+10
-42
lines changed

‎flyway-and-spring-boot/text-based-guide/flyway-and-spring-boot.md‎

Lines changed: 10 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@
2424

2525
##Обзор приложения
2626

27-
Прежде чем приступать к решению поставленных задач, необходимо изучить структуру используемого приложения BlogApplicaion с помощью панели Amplicode Explorer. Чтобы открыть данную панель, используйте следующую иконку:![](images/amplicode-explorer-icon.png)
27+
Прежде чем приступать к решению поставленных задач, необходимо изучить структуру используемого приложения`BlogApplicaion` с помощью панели Amplicode Explorer. Чтобы открыть данную панель, используйте следующую иконку:![](images/amplicode-explorer-icon.png)
2828

2929
Панель выглядит следующим образом:
3030

3131
![](images/application-in-amplicode-explorer.png)
3232

33-
Чтобы проанализировать приложение в контексте используемых фреймворков и библиотек с помощью панели Amplicode Explorer, нажмите на значок стрелочкирябом с именем проекта, чтобы развернуть его. Здесь мы можем узнать, какие модули подключены к нашему проекту, что из себя представляет слой данных, какие эндпонты доступны, а также какие файлы для развертывания приложений уже есть в проекте.
33+
Чтобы проанализировать приложение в контексте используемых фреймворков и библиотек с помощью панели Amplicode Explorer, нажмите на значок стрелочкирядом с именем проекта, чтобы развернуть его. Здесь мы можем узнать, какие модули подключены к нашему проекту, что из себя представляет слой данных, какие эндпонты доступны, а также какие файлы для развертывания приложений уже есть в проекте.
3434

3535
![](images/application-info-expanded.png)
3636

@@ -135,7 +135,7 @@ Amplicode Explorer позволяет добавить необходимые с
135135

136136
* Выполнить команду`flywayBaseline`, чтобы отметить скрипт инициализации как выполненный
137137

138-
По итогу выполненных действий команда будет успешно выполнена, системная таблица Flyway будет добавлена в базу данных, при этом в ней будетсожержаться информация о выполненном файле миграции. Выполнение первой задачи на этом завершено.
138+
По итогу выполненных действий команда будет успешно выполнена, системная таблица Flyway будет добавлена в базу данных, при этом в ней будетсодержаться информация о выполненном файле миграции. Выполнение первой задачи на этом завершено.
139139

140140
##Модификация JPA модели
141141

@@ -164,6 +164,7 @@ Amplicode Explorer позволяет добавить необходимые с
164164
![](images/generate.png)
165165
* Выберите**Entity Attribute**
166166
* Введите тип (**String**) и имя (**text**) для атрибута
167+
<!-- This pic needs a replacement, set the attribute as mandatory at once-->
167168
![](images/entity-attribute.png)
168169
* Нажмите**OK**
169170
* Еще раз вызовите окно**Generate**
@@ -217,8 +218,9 @@ Amplicode позволяет нам улучшить существующий с
217218
<!-- This pic needs a replacement-->
218219
![](images/default-value-for-null.png)
219220

220-
Перед сохранениемchangelogфайлов можем еще раз убедиться в их корректности в окне предпросмотра.
221+
Перед сохранением файлов миграции можем еще раз убедиться в их корректности в окне предпросмотра.
221222

223+
<!-- This pic needs a replacement-->
222224
![](images/script-preview.png)
223225

224226
Кстати, есть еще один скрипт, который мы упустили. Это скрипт удаления индекса из таблицы`Users`в секции**Ignored**.
@@ -227,53 +229,18 @@ Amplicode позволяет нам улучшить существующий с
227229

228230
Amplicode автоматически разместил этот скрипт в данную секцию, т.к. создание индекса может быть довольно дорогостоящей операцией, а его добавление на уровне JPA модели не является довольно распространенным. Поэтому в реальной жизни удалять его из базы данных приходится крайне редко.
229231

232+
<!-- This pic needs a replacement-->
230233
![](images/ignored-script.png)
231234

232235
Но в случае необходимости всегда можно удалить скрипт из списка игнорируемых, либо наоборот расширить список игнорируемых скриптов, выбрав и перетащив ненужные скрипты в секцию**Ignored** прямо в окне предпросмотра или сконфигурировав такой список заранее в настройках.
233236

234-
Оба changelog файла успешно сгенерированы и включены в наш основной файл`db.changelog-master.xml`.
235-
236-
Остается только выполнить скрипты и накатить изменения в базу данных. Конечно же, самым правильным подходом к применению скриптов миграции будет настройка Flyway плагина для Maven или Gradle, т.к. он в любом случае понадобится во время настройки CI/CD pipeline. Но, чтобы не отвлекаться на эту задачу на данном этапе, в рамках данного гайда можно воспользоваться действием**Flyway Update** в Amplicode и накатить скрипты без предварительной настройки плагина, отложив эту задачу на потом.
237+
Оба файла миграции успешно сгенерированы. Выполните их, используя команду`flywayMigrate` и проверьте статус исполнения командой`flywayInfo`.
237238

238-
<!-- This pic needs a replacement-->
239-
![](images/liquibase-update.png)
240-
241-
При выборе данного пункта из меню появится следующее выплывающее окно. Нажмите в нам кнопку**Update**.
239+
Миграция прошла успешно.
242240

243241
<!-- This pic needs a replacement-->
244-
![](images/update-window.png)
245-
246-
Все скрипты выполнились успешно, а информация об их успешном выполнении была записана в таблицу`databasechangelog`.
247-
248242
![](images/databasechangelog-table.png)
249243

250-
##Добавление новых скриптов миграции в существующий файл
251-
252-
Модифицируя JPA модель, мы забыли сделать атрибут`text` для сущности`Comment` обязательным.
253-
254-
![](images/text-not-mandatory.png)
255-
256-
Исправить эту оплошность довольно легко.
257-
258-
Для этого, воспользуйтесь панелью Amplicode Designer и пометьте атрибут как обязательный:
259-
260-
![](images/make-mandatory.png)
261-
262-
Однако, засорять проект множеством Flyway changelog файлов нежелательно. К тому же, данный скрипт относится именно к changelog файлу, содержащему скрипты, связанные с созданием таблицы`Comments`. Благодаря тому, что Flyway исполняет и фиксирует исполнение именно changeset'ов, из которых состоит changelog файл, а не исполнение всего changelog файла целиком, мы можем дополнить существующие changelog файлы новыми changeset скриптами. Amplicode хорошо знает про подобную возможность и позволяет догенерировать необходимые скрипты в существующий файл.
263-
264-
Для этого:
265-
266-
* Откройте нужный нам changelog файл и обратитесь к меню**Generate** от IntelliJ IDEA и выберите пункт**Flyway Diff Changes** от Amplicode.
267-
268-
<!-- This pic needs a replacement-->
269-
270-
![](images/diff-changes.png)
271-
272-
* В открывшемся всплывающем окне нажмите**OK**.
273-
Новый changeset будет добавлен в существующий changelog файл.
274-
275-
* Накатите изменения (как показано выше) и проверьте таблицу`databasechangelog` через pgAdmin.
276-
277244
##Запуск Spring Boot приложения (анализ логов от Amplicode)
278245

279246
Хорошей практикой при разработке Spring Boot приложения и использованием системы версионирования баз данных является применение возможностей валидации соответствия JPA модели и схемы базы данных при помощи Hibernate. Путем использования свойства Hibernate`spring.jpa.hibernate.ddl-auto` со значением`validate` мы можем обеспечить соответствие JPA модели и схемы базы данных.
@@ -294,6 +261,7 @@ spring.jpa.hibernate.ddl-auto=validate
294261

295262
Если приложение запущено без проблем, лог должен выглядеть примерно следующим образом:
296263

264+
<!-- This pic needs a replacement-->
297265
![](images/no-exceptions.png)
298266

299267
Столь же важно отметить, что в случае несоответствия JPA модели и схемы базы данных Amplicode сообщил бы о проблеме и дал бы возможность решить ее прямо из stacktrace.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp