如何暂时禁用 django - postgresql 中的数据库完整性约束

2024-04-11

我正在编写一个 Django 命令来为现有表播种,

我需要在播种之前截断表,但该表上有外键约束。

因此,我得到django.db.utils.IntegrityError截断表格时,

如何在 Django 中暂时关闭外键检查?

I saw SET FOREIGN KEY CHECK = 0但不知道把它们放在哪里:(

Django 命令类:

class Command(BaseCommand):
help = "Command to seed the aws regions"
regions = [
    {
        'name': 'Us East (N. Virginia)',
        'region': 'us-east-1',
    },
    {
        'name': 'US West (Oregon)',
        'region': 'us-west-2',
    },
    {
        'name': 'EU (Ireland)',
        'region': 'eu-west-1',
    },
]
def handle(self, *args, **options):
    self.stdout.write('seeding regions...')

    AwsRegions.objects.all().delete() # this is where i get errors

    for name, region in self.regions:
        self.stdout.write(region)
        AwsRegions.objects.create(name, region)


    self.stdout.write('done seeding regions')

得到了解决方案。

我必须禁用表上的触发器才能停止外键约束检查。

禁用触发器

def disable_triggers(self):
    with connection.cursor() as cursor:
        cursor.execute('ALTER TABLE "Table Name" DISABLE TRIGGER ALL;')

启用触发器

def enable_triggers(self):
    with connection.cursor() as cursor:
        cursor.execute('ALTER TABLE "Table Name" ENABLE TRIGGER ALL;')

重要笔记:

  • 根据这个文档链接 https://docs.djangoproject.com/en/2.1/topics/db/sql/#connections-and-cursors,您可以将列表作为第二个参数传递给execute()方法(例如:您可能想要动态传递表名),但这会自动转义变量,您最终可能会形成语法错误的 PostgreSQL 查询(这花了我很多时间来修复它)

  • 确保正确重新打开触发器

  • 如果您得到的是权限被拒绝错误然后你可能想检查数据库用户权限,我刚刚从 PgAdmin 打开了超级用户权限,这对我来说没问题。一切都恢复正常。怎么做 ? https://stackoverflow.com/a/52768479/2693543

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何暂时禁用 django - postgresql 中的数据库完整性约束 的相关文章

  • 计算包含字母/数字的行数

    我想要实现的目标很简单 但是解释起来有点困难 我不知道在 postgres 中这是否真的可能 我处于相当基础的水平 SELECT FROM WHERE LEFT JOIN ON HAVING 等等基本的东西 我正在尝试计算包含特定字母 数字
  • Postgresql 的 SQL_NO_CACHE?

    MySQL 关键字是否有等效的 postgresqlSQL NO CACHE 或 SQL Serverdbcc drop clean buffers 即您可以简单地将其包含在 SQL 语句中或作为脚本的一部分吗 UPDATE 这个问题 查看
  • JPA 和 PostqreSQL:长字符串持久化

    谁能告诉我如何使用 JPA 保存长文本 我使用 PostgreSQL 这是我在类中定义很长字符串的方法 Lob private String body 然而 这会产生一个类型的字段字符变化 255 在数据库中 此外 我尝试使用 Column
  • 动态创建类 - Python

    我需要动态创建一个类 为了更详细地讲 我需要动态创建 Django 的子类Form class 通过 动态 我打算根据用户提供的配置创建一个类 e g 我想要一个名为CommentForm这应该子类化Form class 该类应该有一个选定
  • Postgres < 9.0 的 DO 块相当于什么

    Postgres 8 4 8 相当于什么 DO BEGIN IF NOT EXISTS THEN EXECUTE END IF END create function f returns void as BEGIN IF NOT EXIST
  • 使用标签或 href 传递 Django 数据

    我有一个包含链接的表 当单击该链接进行更多操作时 我想将一些数据传递给我的函数 my html table tbody for query in queries tr td value a href internal my func que
  • 跨应用程序使用 Django 模型?

    因此 在我的 Django 项目中 我有几个不同的应用程序 每个应用程序都有自己的模型 视图 模板等 让这些应用程序进行通信的好方法 Django 方式 是什么 一个具体的例子是一个会议应用程序 它有一个会议模型 我有一个家庭应用程序 我想
  • Heroku 与 django 通道的正确 procfile/要求是什么?

    tl dr django 频道应用程序在本地使用 manage py runserver 运行 但不在 heroku 上运行 我是 django 通道的新手 尝试使用 heroku 通道部署一个非常基本的 django 应用程序 我最初使用
  • PostgreSQL:使用for循环迭代表行,根据当前行检索列值

    我有以下2张表 CREATE TABLE salesperson t salespersonid numeric 4 0 NOT NULL salespersonname character varying 25 salespersonte
  • django jet 中的自定义徽标

    我目前正在尝试对 django 管理面板的皮肤进行一些定制 以使其更符合我们的品牌 目前我们使用 django jet 来美化管理面板 django jet 可以自定义 css html 吗 所有评论都说我应该更改一些 html 文件 但我
  • Django 不断迁移相同的外键

    我正在将现有数据库导入到它自己的 Django 项目中 我已经从数据库生成了初始模型 通过inspectdb 并且通过注释使 Django 能够一次控制每个表managed False表元设置中的行 我从简单的模型开始 在启用带有外键的表时
  • 如何将 max_length 添加到 allauth 用户名

    我使用 Django allauth 作为我的 Django 站点的用户帐户框架 文档显示有一个ACCOUNT USERNAME MIN LENGTH http django allauth readthedocs io en latest
  • 从 Django 调用 Postgres SQL 存储过程

    我正在开发一个带有 Postgresql 数据库的 Django 项目 我编写了一个可以在 Postgres 上完美运行的存储过程 现在我想从 Django 1 5 调用该存储过程 我已经编写了代码 但它提示错误 CREATE FUNCTI
  • 嵌套字典中的 Django 模板

    我正在使用 Django 模板 并且遇到了嵌套字典的一个问题 Dict result dict type 0 file name abc count 0 type 1 file name xyz count 50 我的 HTML 文件中的模
  • 将 transaction.commit_manually() 升级到 Django > 1.6

    我继承了为 Django 1 4 编写的应用程序的一些代码 我们需要更新代码库以使用 Django 1 7 并最终更新到 1 8 作为下一个长期支持版本 在一些地方它使用旧风格 transaction commit manually and
  • Django 模板标签内字符串连接最佳实践

    我正在尝试连接一些字符串以格式化模板标记内的 URL 但我找不到一种优雅的方法 到目前为止 我所拥有的是 button Activate http site domain url registration activate activati
  • Django通用外键和select_相关

    我试图使用与通用外键的关系来选择模型 但它没有按预期工作 我认为用代码可以更好地说明和理解 class ModelA models Model created models DateTimeField auto now add True c
  • ModelChoiceField 在提交表单时给出无效选择错误

    我想允许用户删除特定模型的关联外键列表 假设我们有这两个模型 class IceBox models Model class FoodItem models Model name models CharField icebox models
  • 从 S3 提供 Django 的静态文件和媒体文件

    我遇到了一个奇怪的问题 我不知道是什么原因造成的 这是我当前的配置 使用Heroku MEDIA URL media STATIC URL static STATICFILES DIRS os path join PROJECT DIR s
  • 如何在 Django 中使我的模型字段可选?

    我正在尝试遵循底部的完整示例 https docs djangoproject com en dev topics auth customizing https docs djangoproject com en dev topics au

随机推荐

  • 如何从 WebStorm 中运行 nodemon?

    我想用nodemon https github com remy nodemon从 WebStorm IDE 版本 7 中 Nodemon 监视源文件夹中的一个或多个文件 并在其中一个源文件发生更改时重新启动节点进程 本例中为 Expres
  • 使用 name(object) <- 向量重命名 xts 对象标头的 R 代码

    我是 R 学习新手 我的一些 R 代码有问题 为了您的方便 我放置了所有代码 以便您可以看到我正在尝试做的事情的逻辑 我的问题是重命名我的 xts 对象 Monthly Quotes 的标头 据我所知 当股票代码无效时 getsymbols
  • 原生 JS 相当于 jQuery 委托

    动态创建的 dom 元素上的事件委托的本机实现是什么 我尝试查看 jQuery 源代码 但无法遵循 on method 注意 目前我在创建 dom 元素后附加事件处理程序 这看起来很标准 但我喜欢 jQuery 的方式 on使用此语法处理动
  • 如何修复“找不到模块 vue-cli-service.js”?

    我正在设置一个新的 Vue 项目 当我运行命令时npm run serve进入CMD 出现如下错误 Error Cannot find module C Users Bram Wicherink vue cli service bin vu
  • 我们如何在 Swift 中实现等待/通知

    在Java中 我们可以这样做 synchronized a while condition false a wait time critical section do something 上面是一个条件同步块 它等待条件成功才能执行临界区
  • WPF 中的多重拖放 - 示例/示例/教程?

    我正在寻找一个示例或任何现成的解决方案 我可以将其集成到现有的应用程序中并使用多重拖放功能 当涉及到将多个项目从 ListBox 之类的控件拖放到另一个 ListBox 时 我在互联网上找到的大多数解决方案都不能很好地工作 谁能指出我的解决
  • 为什么值类型存储在堆栈中?

    为什么 C Net 更喜欢使用堆栈来存储值类型 这种设计背后的主要原因是什么 是因为对堆栈的读 写操作更好地利用了机器处理器吗 另外 也许你可以证明为什么其他人不可以 埃里克 利珀特讨论了这个here https learn microso
  • 自定义字体 Ionic 2

    因此 我尝试在 Ionic 2 应用程序中使用自定义字体 但由于某种原因 它显示的内容不正确 我的字体是 GothamRounded 因此我将所有 ttf svg otf 和 eot 文件复制到 Ionic 项目的 www fonts 文件
  • Apache和Nodejs跨域ajax问题

    我正在开发一个应用程序 其中我使用了托管在同一台机器上的两台服务器 其中一台是 apache 它将作为基本主机来服务 php 页面 另一台 Nodejs 用于其余 api 的通信 整个应用程序构建在backbone marionette r
  • Groovy:从两个范围创建二维数组

    我想创建这个 1 1 1 2 1 3 2 1 6 3 使用 GroovyConsole 我一直在尝试这样的事情 def blob 1 6 collect i gt 1 3 collect j gt i j println blob blob
  • javascript项目将自身拼接出列表

    如果我有一个对象数组 是否有任何方法可以让该项目将自身从包含它的数组中拼接出来 例如 如果一个坏人死了 他会将自己从活跃的敌人阵列中剔除出来 我可能听起来很疯狂 但这种能力会极大地简化我的代码 所以我希望有一些很酷的东西 您将这样做的方式如
  • Word JS api 访问被拒绝(ContentControl.select、Body.getHtml)

    我正在尝试通过js选择内容控制select 功能 docs https dev office com reference add ins word contentcontrol selectselectionmode selectionmo
  • Codeigniter 错误“无法使用提供的设置连接到数据库服务器”

    当我尝试在我的域上上传此项目时 我遇到错误 无法使用提供的设置连接到您的数据库服务器 我已经检查了我的配置文件 and 数据库 php文件且所有信息均正确 将 db debug 设置为 false 解决了我的问题 我用的是雪豹 编辑 db
  • Javascript - 调用 ASP.NET WebService - 服务器方法“methodName”失败

    我已经尝试解决这个问题有一段时间了 但尚未成功 我有一个基本的 ASP NET WebService 我试图从 javascript 调用它 using System using System Web using System Web Se
  • 如何使用OpenCV通过solvePnP估计距离?

    我尝试估计相机和用于校准的棋盘之间的距离 但棋盘上点的 Z 值 993 1021 毫米 有很大不同 棋盘与相机平行 因此我预计相机中心和棋盘平面上任何点之间的 Z 值应该相同 我做错了什么 Code import numpy import
  • 我想使用 javascript 在下拉菜单中填写五年,这些年份将在当前年份之后

    我想使用 javascript 在下拉菜单中填写五年 这些年份将在当前年份之后 例如 如果当前年份是 2012 年 则下拉值为 2012 2013 2014 2015 2016 HTML
  • Node.js - 日志记录/使用摩根和温斯顿

    we use morgan为了注销快速转换 var morgan require morgan morgan combined a format string morgan remote addr method url uuid a cus
  • torch-1.1.0-cp37-cp37m-win_amd64.whl 在此平台上不受支持的滚轮

    我在开发 RNN 时需要使用 pyTorch 每当我尝试安装它时 我都会收到一条错误消息 指出 torch 1 1 0 cp37 cp37m win amd32 whl 在此平台上不受支持 pip3安装https download pyto
  • 在android上滚动ListView后自动隐藏键盘

    我是 Android 新手 请帮助我在滚动列表视图后自动隐藏 这是我的代码 但无法获得正确的解决方案 xml文件
  • 如何暂时禁用 django - postgresql 中的数据库完整性约束

    我正在编写一个 Django 命令来为现有表播种 我需要在播种之前截断表 但该表上有外键约束 因此 我得到django db utils IntegrityError截断表格时 如何在 Django 中暂时关闭外键检查 I saw SET