Выполнил все скрипты в liquibase, затем были проблемы с pom файлом что-то подключал, переподключал. Много что делал и уже не помню. В результате liquibase начал пытаться все скрипты выполнять с самого начала. В результате этого у меня, естественно, ошибка возникает. Можно, конечно сделать так: удалить из базы все и пересоздать заново. Но не хотелось бы это делать. Хотелось бы в liquibase установить правильный указатель на скрипт, который необходимо выполнить
Сейчас такая ошибка (по понятной причине)
ERROR: relation "auto_user" already exists
Можете подсказать, как можно правильный указатель поставить?
Редактировать список скриптов, которые необходимо выполнять неправильно. Ведь это все отразится потом у других разработчиков. Как-то локально в liquibase надо поправить. Не нашел где этот указатель на последний выполненный скрипт хранится.
Дмитрий
31 уровень
изменение последнего выполненного скрипта liquibase
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Justinian Judge в Mega City One Master
15 марта, 13:18
ликвибейс это версионирование базы данных, любое новое изменение через новый чейнджсет.
Если локально что-то в процессе работы и начинает прыгать туда сюда и нужно вносить изменения, то конечно оно ломается, и это значит что ликвибейс отрабатывает свою функцию - предотвращение mess в проекте и у других людей, которые уже накатили и исполнили этот скрипт, недопущение чтобы ты поломал и у себя и у других.
Но если речь идет об изменениях которые еще не попали в центральный репозиторий на другой энвайрмент, то можно конечно и хулиганить и скрипты немного менять, но тут два основных механизма.
Первый, это естественно полный дроп базы и ликвибейс снова все накатит что нужно,
Второй сложнее, это в таблице databasechangelog химичить с идентификаторами отработанных чейнджсетов, например последний можно убрать, и тогда он заново накатится другим, но если в таблице есть много каких-то элементов (констрейнты, сиквенсы и разные радости) + в итоге работы с БД она стала неконсистентной, то править это все может быть непросто, ведь помимо изменений в liquibase скрипты нужно еще и БД приводить в божий вид, а ручками это может быть непросто при сложной структуре, тогда дропнуть точно стоит, локально естественно, там где продакшен данные, то понятно что через новые чейнджсеты изменения.
этот момент конечно странный, но такое, смотри что там с databasechangelog , постарайся вспомнить и понять что ты там мог сделать чтобы понять как ты к этому пришел, тогда станет понятней как лучше выйти 0