撤消查询的反向SQL

问题描述 投票:0回答:1

查询:

UPDATE "table_name"
SET properties = properties || jsonb_build_object('$ip', ip)
WHERE ip IS NOT NULL;

我正在运行Django迁移,我需要反向sql来撤消执行此查询的结果并将表恢复为以前的状态。

因为我为以下操作运行django迁移测试:

operations = [
        # migrations.RunPython(migrate_event_ip_to_property, rollback),
        migrations.RunSQL(
            """
            UPDATE "table_name"
            SET properties = properties || jsonb_build_object('$ip', ip)
            WHERE ip IS NOT NULL;
            """,
            None
        )
    ]

我收到IrreversibleError。我认为,如果我提供反向sql,而不是None,它可能会起作用

postgresql django-migrations
1个回答
0
投票

我认为您不愿从postgresql寻找原始解决方案,因为Django迁移已提交了SQL事务。参见Postgresql ROLLBACK

但是在这种情况下,您可以使用:

./manage.py migrate app XXXX_last_working_migration

如Django的django-admin文档迁移部分here中所述

© www.soinside.com 2019 - 2024. All rights reserved.