fix(db): record_drafts_operation_check + REOPEN (500 на «Открыть заново»)
This commit is contained in:
+42
@@ -0,0 +1,42 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<databaseChangeLog
|
||||||
|
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.27.xsd">
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Расширяем record_drafts_operation_check на REOPEN.
|
||||||
|
|
||||||
|
Контекст: в 0019 (approval-workflow-v2) был добавлен CHECK constraint
|
||||||
|
`operation IN ('CREATE', 'UPDATE', 'CLOSE')`. В v2.55.0 добавлена
|
||||||
|
операция REOPEN (вернуть закрытую запись в active state), но DB
|
||||||
|
constraint про неё не знал → INSERT REOPEN-draft падал:
|
||||||
|
|
||||||
|
ERROR: new row for relation "record_drafts" violates check
|
||||||
|
constraint "record_drafts_operation_check"
|
||||||
|
|
||||||
|
→ 500 на submit REOPEN-draft (DraftService.submit).
|
||||||
|
|
||||||
|
Дроп + пересоздание с REOPEN. IF EXISTS — идемпотентно (на случай
|
||||||
|
если на каком-то env constraint уже снят вручную).
|
||||||
|
-->
|
||||||
|
|
||||||
|
<changeSet id="0032-1-record-drafts-allow-reopen" author="ordinis">
|
||||||
|
<comment>Extend record_drafts_operation_check: add REOPEN</comment>
|
||||||
|
<sql>
|
||||||
|
ALTER TABLE record_drafts
|
||||||
|
DROP CONSTRAINT IF EXISTS record_drafts_operation_check;
|
||||||
|
ALTER TABLE record_drafts
|
||||||
|
ADD CONSTRAINT record_drafts_operation_check
|
||||||
|
CHECK (operation IN ('CREATE', 'UPDATE', 'CLOSE', 'REOPEN'));
|
||||||
|
</sql>
|
||||||
|
<rollback>
|
||||||
|
ALTER TABLE record_drafts
|
||||||
|
DROP CONSTRAINT IF EXISTS record_drafts_operation_check;
|
||||||
|
ALTER TABLE record_drafts
|
||||||
|
ADD CONSTRAINT record_drafts_operation_check
|
||||||
|
CHECK (operation IN ('CREATE', 'UPDATE', 'CLOSE'));
|
||||||
|
</rollback>
|
||||||
|
</changeSet>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -41,5 +41,6 @@
|
|||||||
<include file="changes/0029-drop-self-approve-constraints.xml" relativeToChangelogFile="true"/>
|
<include file="changes/0029-drop-self-approve-constraints.xml" relativeToChangelogFile="true"/>
|
||||||
<include file="changes/0030-dictionary-delete-cascade.xml" relativeToChangelogFile="true"/>
|
<include file="changes/0030-dictionary-delete-cascade.xml" relativeToChangelogFile="true"/>
|
||||||
<include file="changes/0031-dictionary-soft-delete-approval.xml" relativeToChangelogFile="true"/>
|
<include file="changes/0031-dictionary-soft-delete-approval.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="changes/0032-record-drafts-reopen-operation.xml" relativeToChangelogFile="true"/>
|
||||||
|
|
||||||
</databaseChangeLog>
|
</databaseChangeLog>
|
||||||
|
|||||||
Reference in New Issue
Block a user