postgresql - 撤消查询的反向sql
问题描述
询问:
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
)
]
我得到不可逆错误。我想如果我提供反向sql,而不是None,它可能会起作用
解决方案
我认为你不走运从 postgresql 寻找原始解决方案,因为 SQL 事务已经由 Django 迁移提交。请参阅Postgresql 回滚
但在这种情况下,您可以使用以下方法恢复到上次工作迁移:
./manage.py migrate app XXXX_last_working_migration
如 Django的django-admin 文档迁移部分所述
推荐阅读
- c# - 如何从 Web API 全局存储和访问令牌?
- algorithm - 递归创建嵌套结构
- rx-swift - 如何将不同的值变体发布到 Rx 流上?
- npm - 安装成功后找不到包
- swift - 如何限制按时间快速单击的按钮
- css - Bootstrap 4 布局,网格
- linux - 在 Windows 上用 C++ 读取堆栈帧的基础
- php - 合并phpunit codecoverage(coverage-html)结果
- javascript - 在 VUEJS 中有 2 个具有删除属性的列表,一个列表有效,另一个无效
- angular - 如何等待来自 google-cloud-firestore 的一系列 observables