Заново генерируются скрипты создания и обносления БД. Cuba 6.5

У меня база данных проекта и исходники проекта. при нажатии на “Update database” Cuba studia генерирует и пыпается выполнить скрипты обновления системыхы таблиц и падает с ошибкой: org.postgresql.util.PSQLException: ОШИБКА: столбец “default_int_entity_value” отношения “sys_category_attr” уже существует.
Скажите пожалуйста что надо сделать чтобы студия перестала генерить старые скрипты?

1 симпатия

Если кому интересно оставлю свое решение данной проблемы здесь.

  1. в студии нажимала на “Update database”
  2. студия пыталась сгенерить и выполнить скрипты уже существующих таблиц и атрибутов. Имя файла скрипта с полным путем в ручную добавляла в таблицу sys_db_changelog c текущей датой. (insert запрос)
  3. повторяла 1 и 2 действия до тех пор пока не добавила все ненужные файлы скриптов в таблицу sys_db_changelog
    из документации :
    "
    Скрипты обновления, а также отделенные символом “^” команды DDL и SQL внутри скриптов выполняются в отдельных транзакциях. Поэтому при возникновении ошибки при обновлении существует большая вероятность того, что часть скриптов, или даже отдельных команд последнего скрипта, выполнилась и зафиксирована в БД.
    В связи с этим рекомендуется непосредственно перед запуском сервера с новой версией приложения делать резервное сохранение БД. Тогда после устранения причины ошибки достаточно восстановить БД и запустить автоматический процесс вновь.
    Если бэкап БД остутствует, то после устранения причины ошибки необходимо выяснить, какая часть вызвавшего ошибку скрипта выполнилась и закоммичена. Если скрипт не выполнился целиком, то можно сразу снова запускать автоматический процесс. Если же часть команд до ошибочной была отделена символом “^”, выполнялась в отдельной транзакции и была закоммичена, то необходимо выполнить оставшуюся часть команд, а затем зарегистрировать данный скрипт в SYS_DB_CHANGELOG вручную. После этого можно стартовать сервер, механизм автоматического обновления продолжит работу со следующего невыполненного скрипта.
    CUBA Studio генерирует скрипты обновления с символом “;” в качестве разделителями для всех типов БД, кроме Oracle. Если команды скрипта разделены точками с запятой, они выполняются в одной транзакции, и в случае ошибки скрипт откатывается целиком. Тем самым обеспечивается постоянное соответствие между структурой БД и списком выполненных скриптов обновления.
    "
    https://doc.cuba-platform.com/manual-6.5-ru/db_update_in_prod_by_server.html

Здраствуйте, Эльвира.

Спасибо, что поделились подробным решением своей проблемы.