Merge pull request 'удаление старых функций в бд (добавление и обновление всп)' (#188) from del-old-func into test
Reviewed-on: #188
This commit is contained in:
commit
4e002150d3
102
api/alembic/versions/0047_remove_old_vsp_functions.py
Normal file
102
api/alembic/versions/0047_remove_old_vsp_functions.py
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
from alembic import op
|
||||||
|
|
||||||
|
|
||||||
|
revision = "0047"
|
||||||
|
down_revision = "0046"
|
||||||
|
branch_labels = None
|
||||||
|
depends_on = None
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade() -> None:
|
||||||
|
# Verify that the implementations used by the API exist before removing
|
||||||
|
# historical signatures. CREATE OR REPLACE does not replace overloads.
|
||||||
|
op.execute(
|
||||||
|
"""
|
||||||
|
DO $migration$
|
||||||
|
BEGIN
|
||||||
|
IF to_regprocedure(
|
||||||
|
'v3.add_vsp(integer, varchar, varchar, varchar, date, '
|
||||||
|
'varchar, integer, numeric, date, boolean, boolean, varchar, '
|
||||||
|
'integer, varchar, text, varchar, date)'
|
||||||
|
) IS NULL THEN
|
||||||
|
RAISE EXCEPTION 'Current v3.add_vsp function is missing';
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF to_regprocedure(
|
||||||
|
'v3.upd_vsp(integer, integer, varchar, varchar, varchar, '
|
||||||
|
'date, varchar, integer, numeric, date, boolean, boolean, '
|
||||||
|
'varchar, integer, varchar, text, varchar, date)'
|
||||||
|
) IS NULL THEN
|
||||||
|
RAISE EXCEPTION 'Current v3.upd_vsp function is missing';
|
||||||
|
END IF;
|
||||||
|
END
|
||||||
|
$migration$;
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
|
||||||
|
# The first two may still have their temporary names in production.
|
||||||
|
for function_name in ("add_vsp", "add_vsp_1"):
|
||||||
|
op.execute(
|
||||||
|
f"""
|
||||||
|
DROP FUNCTION IF EXISTS v3.{function_name}(
|
||||||
|
integer, varchar, varchar, varchar, date, varchar,
|
||||||
|
integer, numeric, date, boolean, boolean, varchar,
|
||||||
|
integer, varchar, text, varchar, integer, varchar, date
|
||||||
|
) RESTRICT
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
|
||||||
|
for function_name in ("add_vsp", "add_vsp_2"):
|
||||||
|
op.execute(
|
||||||
|
f"""
|
||||||
|
DROP FUNCTION IF EXISTS v3.{function_name}(
|
||||||
|
integer, varchar, varchar, varchar, date, varchar,
|
||||||
|
integer, numeric
|
||||||
|
) RESTRICT
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
|
||||||
|
op.execute(
|
||||||
|
"""
|
||||||
|
DROP FUNCTION IF EXISTS v3.upd_vsp(
|
||||||
|
integer, integer, varchar, varchar, varchar, date, varchar,
|
||||||
|
integer, numeric, date, boolean, boolean, varchar, integer,
|
||||||
|
varchar, text, varchar, integer, varchar, date
|
||||||
|
) RESTRICT
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
op.execute(
|
||||||
|
"""
|
||||||
|
DROP FUNCTION IF EXISTS v3.upd_vsp(
|
||||||
|
integer, integer, varchar, varchar, varchar, date, varchar,
|
||||||
|
integer, numeric
|
||||||
|
) RESTRICT
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
|
||||||
|
op.execute(
|
||||||
|
"""
|
||||||
|
DO $migration$
|
||||||
|
BEGIN
|
||||||
|
IF (
|
||||||
|
SELECT count(*)
|
||||||
|
FROM pg_proc AS p
|
||||||
|
JOIN pg_namespace AS n ON n.oid = p.pronamespace
|
||||||
|
WHERE n.nspname = 'v3' AND p.proname = 'add_vsp'
|
||||||
|
) <> 1 OR (
|
||||||
|
SELECT count(*)
|
||||||
|
FROM pg_proc AS p
|
||||||
|
JOIN pg_namespace AS n ON n.oid = p.pronamespace
|
||||||
|
WHERE n.nspname = 'v3' AND p.proname = 'upd_vsp'
|
||||||
|
) <> 1 THEN
|
||||||
|
RAISE EXCEPTION 'Unexpected v3.add_vsp or v3.upd_vsp overload remains';
|
||||||
|
END IF;
|
||||||
|
END
|
||||||
|
$migration$;
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade() -> None:
|
||||||
|
# The obsolete function bodies are not part of the current schema.
|
||||||
|
pass
|
||||||
Loading…
x
Reference in New Issue
Block a user