Size: a a a

2020 December 28

V

Vlad in pro.jvm
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
В буте можно для разных субд разные флайвей миграции задавать. С ликвибейзом вероятно тоже есть возможность
Нужно через jdbc temlate выполнять insert. Может стоит внести логику на сторону приложения нежели на откуп базы оставить? (но не очень хочется делать insert or update в приложении - атомарность смущает в первую очередь и конкурентость)
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in pro.jvm
Vlad
Нужно через jdbc temlate выполнять insert. Может стоит внести логику на сторону приложения нежели на откуп базы оставить? (но не очень хочется делать insert or update в приложении - атомарность смущает в первую очередь и конкурентость)
И вы хотите это сделать через хранимку на стороне субд?
источник

V

Vlad in pro.jvm
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
И вы хотите это сделать через хранимку на стороне субд?
Я хочу сделать insert, если записи не было, update если была. Сейчас сделано через oracle merge команду в jdbc template, которая это делает. Нужно докрутить, чтобы работало и в postgres
источник

L

Loljeene in pro.jvm
Vlad
Я хочу сделать insert, если записи не было, update если была. Сейчас сделано через oracle merge команду в jdbc template, которая это делает. Нужно докрутить, чтобы работало и в postgres
Постргря вроде умеет в merge
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in pro.jvm
Vlad
Я хочу сделать insert, если записи не было, update если была. Сейчас сделано через oracle merge команду в jdbc template, которая это делает. Нужно докрутить, чтобы работало и в postgres
Ну проще всего сделать это через хранимые процедуры с одним именем
источник

ЕМ

Евгений Михайлов... in pro.jvm
INSERT INTO the_table (id, column_1, column_2)
VALUES (1, 'A', 'X'), (2, 'B', 'Y'), (3, 'C', 'Z')
ON CONFLICT (id) DO UPDATE
 SET column_1 = excluded.column_1,
     column_2 = excluded.column_2;
источник

V

Vlad in pro.jvm
Евгений Михайлов
INSERT INTO the_table (id, column_1, column_2)
VALUES (1, 'A', 'X'), (2, 'B', 'Y'), (3, 'C', 'Z')
ON CONFLICT (id) DO UPDATE
 SET column_1 = excluded.column_1,
     column_2 = excluded.column_2;
Да, но в оракл другой синтаксис
источник

V

Vlad in pro.jvm
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
Ну проще всего сделать это через хранимые процедуры с одним именем
Не, это не вариант))
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in pro.jvm
Vlad
Не, это не вариант))
Ну тогда только держать в приложении запросы с разным синтаксисом и в рантайме выбирать их
источник

L

Loljeene in pro.jvm
spring.flyway.locations=classpath:db/migration/\{vendor}
Флайвей так умеет
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in pro.jvm
Loljeene
spring.flyway.locations=classpath:db/migration/\{vendor}
Флайвей так умеет
Он не хочет хранимку
источник

L

Loljeene in pro.jvm
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
Он не хочет хранимку
А при чем тут хранимка?
источник

L

Loljeene in pro.jvm
я так понял надо поддерживать две ветки миграции
источник

L

Loljeene in pro.jvm
как это в кубе например сделано
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in pro.jvm
Loljeene
я так понял надо поддерживать две ветки миграции
Не, 2 синтаксиса апсертов
источник

L

Loljeene in pro.jvm
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
Не, 2 синтаксиса апсертов
ну так это и решает проблему, не?
источник

L

Loljeene in pro.jvm
В одной папке будут миграции для оракла
источник

L

Loljeene in pro.jvm
во второй для постгри
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in pro.jvm
Loljeene
В одной папке будут миграции для оракла
Да ему не миграции, а запросы в рантайме нужны
источник

L

Loljeene in pro.jvm
Не так понял
источник