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/0030-dictionary-delete-cascade.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>
|
||||
|
||||
Reference in New Issue
Block a user