|
JPA в DDL
|
|||
---|---|---|---|
#18+
Привет всем! Проект, доступ к бд обеспечивается с помощью spring data jpa + eclipselink. В процессе разработки меняются entity несколькими разработчика независимо друг от друга. Вопрос, как оптимально сгенерировать sql скрипты обновления БД на основе новых сущностей в java ? Желательно с примерами... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 16:10 |
|
JPA в DDL
|
|||
---|---|---|---|
#18+
Я почему то думал всегда что процесс идет в обратную сторону... Сначала меняем базу, пишем под это скрипты, а потом меняем entity ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 16:25 |
|
JPA в DDL
|
|||
---|---|---|---|
#18+
NTDim, Для миграций используется Flyway и liquibase. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 17:08 |
|
JPA в DDL
|
|||
---|---|---|---|
#18+
NTDimПривет всем! Проект, доступ к бд обеспечивается с помощью spring data jpa + eclipselink. В процессе разработки меняются entity несколькими разработчика независимо друг от друга. Вопрос, как оптимально сгенерировать sql скрипты обновления БД на основе новых сущностей в java ? Желательно с примерами... От джавы мапить таблицы в бд можно, конечно, но... все же лучше, особенно, когда разрабов несколько, джаве давать только читать поля (ясное дело и менять данные), но не создавать новые. В конце концов, если есть кто-то, кто отвечает за задачи по БД будет очень удивлен, почему у него когда-нибудь перестанет что-то работать, например процедуры и другие его штуки ) Но это не ответ на ваш вопрос, просто информация к размышлению ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 18:02 |
|
JPA в DDL
|
|||
---|---|---|---|
#18+
cossack5NTDim, Для миграций используется Flyway и liquibase. есть вроде еще плагины которые сами просто рисуют базу под новую схему. правда, дропают все данные там. ну и пофиг для девелопмента самое то. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 18:12 |
|
JPA в DDL
|
|||
---|---|---|---|
#18+
andreykaTcossack5NTDim, Для миграций используется Flyway и liquibase. есть вроде еще плагины которые сами просто рисуют базу под новую схему. правда, дропают все данные там. ну и пофиг для девелопмента самое то.Зачем какие-то плагины? Функция генерация DDL включена во все основные реализации (Hibernate, EclipseLink). Например, вот . Напоминаю, данную функцию допустимо использовать ТОЛЬКО на начальном этапе разработки, когда допустимо уничтожение всех тестовых данных. Хотя на выходе получается, откровенно говоря, так себе. Перед релизом надо переходить на liquibase или ему подобные инструменты верисонирования. P.S. Мы делали некоторые проекты с авто генерацией DDL, но в итоге перешли на liquibase с самого начала проекта. Т.к. в начале пути схема меняется часто, то позволяем себе скрипты миграции поправлять, удаляя все объекты в БД вручную. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 19:59 |
|
JPA в DDL
|
|||
---|---|---|---|
#18+
А flyway и liquibase умеют из jpa строить разницу с БД в sql скриптах ? Они же вроде умеют строить разницу только между двумя БД ... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 12:47 |
|
JPA в DDL
|
|||
---|---|---|---|
#18+
Вроде можно доктриной накатить ddl а потом flyway`ем построить на основе диффа ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 13:35 |
|
JPA в DDL
|
|||
---|---|---|---|
#18+
*не доктриной, а хибером/клипсом ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 13:35 |
|
JPA в DDL
|
|||
---|---|---|---|
#18+
Hett, прошу прощения, а можно более детально и если возможно с примером ? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 21:11 |
|
JPA в DDL
|
|||
---|---|---|---|
#18+
NTDimHett, прошу прощения, а можно более детально и если возможно с примером ? Давно уже flyway не касался. Сейчас посмотрел, он не умеет генерировать sql. Видимо я что-то путаю, может в другом инструменте это делал. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 08:46 |
|
JPA в DDL
|
|||
---|---|---|---|
#18+
а если с каждой версией создавать новую базу данные потом переносить с учетом изменений в конструкции? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2018, 00:47 |
|
JPA в DDL
|
|||
---|---|---|---|
#18+
bochkov, это может вылиться в отдельную огромную задачу ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2018, 06:02 |
|
JPA в DDL
|
|||
---|---|---|---|
#18+
В шарпе MS эти технологии называются CodeFirst, миграция. Когда база генерируется по коду. В java более серьезное отношение к базе, разработчикам базы и БД админам. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2018, 11:07 |
|
JPA в DDL
|
|||
---|---|---|---|
#18+
мы используем для этого liquibase - здесь апдейты делаются через удобные описания в файлах, что отлично подходит для git ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2018, 11:41 |
|
JPA в DDL
|
|||
---|---|---|---|
#18+
Герой днямы используем для этого liquibase - здесь апдейты делаются через удобные описания в файлах, что отлично подходит для git если не сложно, дай простой пример. Может и мы заюзаем. Мы по простому - скриптами на ЯП субд. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2018, 12:15 |
|
JPA в DDL
|
|||
---|---|---|---|
#18+
Petro123если не сложно, дай простой пример. Может и мы заюзаем. Мы по простому - скриптами на ЯП субд.Нечего там смотреть: встроенный DSL - наименьший общий делитель поддерживаемых СУБД, т.е. если есть какая-то специфика, то либо DSL становится непортабельным (например типы колонок хреново портируются), либо вообще на DSL сделать нельзя и нужно использовать SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2018, 12:29 |
|
JPA в DDL
|
|||
---|---|---|---|
#18+
Petro123Герой днямы используем для этого liquibase - здесь апдейты делаются через удобные описания в файлах, что отлично подходит для git если не сложно, дай простой пример. Может и мы заюзаем. Мы по простому - скриптами на ЯП субд. тут доступно и легко написано: https://docs.spring.io/spring-boot/docs/current/reference/html/howto-database-initialization.html Создаете файлы, пишите их друг за дружкой в файл для тестового или продуктового XML: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
пример одного из файлов: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2018, 15:14 |
|
JPA в DDL
|
|||
---|---|---|---|
#18+
Герой дня, понятно. У нас база одного типа, и скрипт на ЯП базы проще выходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2018, 15:26 |
|
JPA в DDL
|
|||
---|---|---|---|
#18+
Petro123У нас база одного типа, и скрипт на ЯП базы проще выходит.Вам совсем не те фичи, на которые нужно обращать внимание, показывают. Вот, например: loadData позволяет лить тестовые данные в базу (на flyway там будет куча insert), при этом оно может лить и CLOB/BLOB, что на flyway делается исключительно из жава-кода, если скрестить с предусловиями то можно указывать куда лить данные, а куда не лить. Темы с тем, что можно задавать какие скрипты выполнять только один раз, а какие при каждом накате или при изменении тоже весьма полезны. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2018, 15:39 |
|
|
start [/forum/topic.php?fid=59&msg=39716736&tid=2121716]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 321ms |
total: | 490ms |
0 / 0 |