Я использую сценарий Flyway для миграции базы данных. Но во время инициализации базы данных я добавил 3 строки в свою таблицу t1. Затем с помощью миграции v1 я добавил 2 новые строки в таблицу t1. с v2 я добавил две новые строки в t1. Всего строк теперь 7. С помощью сценария Flyway v3 я добавляю новый столбец в t1 и обновляю значения по умолчанию для всех 7 строк. Хотя мой новый столбец обновляется для 4 строк, которые я вставил с помощью сценариев миграции v1, v2, но начальные 3 строки не обновляются со значениями по умолчанию, даже несмотря на то, что запрос на обновление присутствует в моей версии сценария пролетного пути v3.
В чем может быть причина? Как это исправить? Подскажите, пожалуйста?
Этот класс InitializeData, вызываемый с помощью SpringBootApplication, создает исходную таблицу t1.
@Component
@RequiredArgsConstructor
public class InitializeData {
private final DataSource dataSource;
@EventListener(ApplicationReadyEvent.class)
public void loadData() {
ResourceDatabasePopulator resourceDatabasePopulator = new ResourceDatabasePopulator(false, false, "UTF-8", new ClassPathResource("/data.sql"));
resourceDatabasePopulator.execute(dataSource);
}
}
data.sql
INSERT INTO public.t1(
event_name, event_description, created_by, created_dtm, updated_by, updated_dtm)
VALUES
('e1', 'desc1', 'System', now(), 'System', now()),
('e2', 'desc2', 'System', now(), 'System', now()),
('e3', 'desc3', 'System', now(), 'System', now()))
ON CONFLICT DO NOTHING;
ALTER TABLE public.t1 ADD COLUMN component_source VARCHAR(255);
-- Populate the new column with corresponding values
UPDATE public.t1 As target
SET component_source = CASE
WHEN event_name = 'e1' THEN 'i1'
WHEN event_name = 'e2' THEN 'i2'
WHEN event_name = 'e3' THEN '13'
WHEN event_name = 'e4' THEN 'i4'
WHEN event_name = 'e5' THEN 'i5'
WHEN event_name = 'e6' THEN 'i6'
WHEN event_name = 'e7' THEN 'i7'
END
WHERE event_name IN (
SELECT event_name
FROM public.t1
);
Подробнее здесь: https://stackoverflow.com/questions/793 ... -insertion
Миграция Flyway не обновляет столбцы для прямой вставки данных ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1735475172
Anonymous
Я использую сценарий Flyway для миграции базы данных. Но во время инициализации базы данных я добавил 3 строки в свою таблицу t1. Затем с помощью миграции v1 я добавил 2 новые строки в таблицу t1. с v2 я добавил две новые строки в t1. Всего строк теперь 7. С помощью сценария Flyway v3 я добавляю новый столбец в t1 и обновляю значения по умолчанию для всех 7 строк. Хотя мой новый столбец обновляется для 4 строк, которые я вставил с помощью сценариев миграции v1, v2, но начальные 3 строки не обновляются со значениями по умолчанию, даже несмотря на то, что запрос на обновление присутствует в моей версии сценария пролетного пути v3.
В чем может быть причина? Как это исправить? Подскажите, пожалуйста?
Этот класс InitializeData, вызываемый с помощью SpringBootApplication, создает исходную таблицу t1.
@Component
@RequiredArgsConstructor
public class InitializeData {
private final DataSource dataSource;
@EventListener(ApplicationReadyEvent.class)
public void loadData() {
ResourceDatabasePopulator resourceDatabasePopulator = new ResourceDatabasePopulator(false, false, "UTF-8", new ClassPathResource("/data.sql"));
resourceDatabasePopulator.execute(dataSource);
}
}
data.sql
INSERT INTO public.t1(
event_name, event_description, created_by, created_dtm, updated_by, updated_dtm)
VALUES
('e1', 'desc1', 'System', now(), 'System', now()),
('e2', 'desc2', 'System', now(), 'System', now()),
('e3', 'desc3', 'System', now(), 'System', now()))
ON CONFLICT DO NOTHING;
ALTER TABLE public.t1 ADD COLUMN component_source VARCHAR(255);
-- Populate the new column with corresponding values
UPDATE public.t1 As target
SET component_source = CASE
WHEN event_name = 'e1' THEN 'i1'
WHEN event_name = 'e2' THEN 'i2'
WHEN event_name = 'e3' THEN '13'
WHEN event_name = 'e4' THEN 'i4'
WHEN event_name = 'e5' THEN 'i5'
WHEN event_name = 'e6' THEN 'i6'
WHEN event_name = 'e7' THEN 'i7'
END
WHERE event_name IN (
SELECT event_name
FROM public.t1
);
Подробнее здесь: [url]https://stackoverflow.com/questions/79315574/flyway-migration-not-updating-the-columns-for-direct-data-insertion[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия