IntegrityError:错误:列“user_id”中的空值违反了非空约束

2023-11-22

使用:postgres(PostgreSQL)9.4.5

我刚刚迁移了一个sqlite3数据库到一个postgresqlD b。由于某种原因,自从这次迁移以来,当我尝试创建用户时,出现了有关user_id(这是主键)正在被提升。以前这不是问题sqlite3。我花了时间浏览文档和堆栈问题,但仍然感到困惑。

Inside api.create_user():

api.create_user(username ='lola ', firstname ='cats ', lastname ='lcatk', email='[email protected]')

sqlalchemy 数据库 Model:

class User(Base):
    __tablename__ = 'users'

    #user_id = Column(Integer, primary_key=True)
    #changed to:
    id = Column(Integer, primary_key=True)
    username = Column(String(50))
    firstname = Column(String(50))
    lastname = Column(String(50))
    email = Column(String(300))
    password = Column(String(12))
    institution = Column(String(50))

    def __init__(self, username, firstname, lastname, email):
        self.username = username
        self.firstname = firstname
        self.lastname = lastname
        self.email = email

    def __repr__(self):
        return "<User(username ='%s', firstname ='%s', lastname ='%s', email='%s')>" % (self.username, self.firstname, self.lastname, self.email)

pyramid视图.py:

@view_config(#code supplying the template and etc.)
def save_assessment_result(request):
    with transaction.manager:
        username = request.params['username']
        firstname = request.params['firstname']
        lastname = request.params['lastname']
        email = request.params['email']
        user = api.create_user(username, firstname, lastname, email)
        #mode code to commit and etc.
    transaction.commit()
    return HTTPCreated()

postgres服务器日志:

ERROR:  null value in column "user_id" violates not-null constraint
DETAIL:  Failing row contains (null, lola , cats , lcatk, [email protected], null, null, 2015-10-19 23:02:21.560395).
STATEMENT:  INSERT INTO users (username, firstname, lastname, email, password, institution, created_on) VALUES ('lola ', 'cats ', 'lcatk', '[email protected]', NULL, NULL, '2015-10-19T23:02:21.560395'::timestamp) RETURNING users.user_id

追溯:

015-10-19 19:02:21,563 ERROR [pyramid_debugtoolbar][Dummy-3] Exception at http://0.0.0.0:6432/save_assessment_result
  File "/Users/ack/code/venv/NotssWEB/notssweb/views/default.py", line 61, in save_assessment_result
    assessment = api.retrieve_assessment(assessment_id)
  File "/usr/local/lib/python2.7/site-packages/notssdb/api/object.py", line 112, in retrieve_assessment
    filter(Assessment.assessment_id == something_unique).one()
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2473, in one
    ret = list(self)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2515, in __iter__
    self.session._autoflush()
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 1292, in _autoflush
    util.raise_from_cause(e)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/util/compat.py", line 199, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 1282, in _autoflush
    self.flush()
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 2004, in flush
    self._flush(objects)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 2122, in _flush
    transaction.rollback(_capture_exception=True)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/util/langhelpers.py", line 60, in __exit__
    compat.reraise(exc_type, exc_value, exc_tb)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 2086, in _flush
    flush_context.execute()
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.py", line 373, in execute
    rec.execute(self)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.py", line 532, in execute
    uow
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/persistence.py", line 174, in save_obj
    mapper, table, insert)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/persistence.py", line 781, in _emit_insert_statements
    execute(statement, params)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 914, in execute
    return meth(self, multiparams, params)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/sql/elements.py", line 323, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1010, in _execute_clauseelement
    compiled_sql, distilled_params
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1146, in _execute_context
    context)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1341, in _handle_dbapi_exception
    exc_info
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/util/compat.py", line 199, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1139, in _execute_context
    context)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 450, in do_execute
    cursor.execute(statement, parameters)
IntegrityError: (raised as a result of Query-invoked autoflush; consider using a session.no_autoflush block if this flush is occurring prematurely) (psycopg2.IntegrityError) null value in column "user_id" violates not-null constraint
DETAIL:  Failing row contains (null, lola , cats , lcatk, [email protected], null, null, 2015-10-19 23:02:21.560395).
 [SQL: 'INSERT INTO users (username, firstname, lastname, email, password, institution, created_on) VALUES (%(username)s, %(firstname)s, %(lastname)s, %(email)s, %(password)s, %(institution)s, %(created_on)s) RETURNING users.user_id'] [parameters: {'username': u'lola ', 'firstname': u'cats ', 'lastname': u'lcatk', 'institution': None, 'created_on': datetime.datetime(2015, 10, 19, 23, 2, 21, 560395), 'password': None, 'email': u'[email protected]'}]
2015-10-19 19:02:21,564 DEBUG [notssweb][Dummy-3] route matched for url http://0.0.0.0:6432/_debug_toolbar/exception?token=a30c0989db02aeff9cd2&tb=4459323984; route_name: 'debugtoolbar', path_info: u'/_debug_toolbar/exception', pattern: '/_debug_toolbar/*subpath', matchdict: {'subpath': (u'exception',)}, predicates: '

First.
我更改了 id 命名约定user_id简单地id在数据库中(这对于所有其他数据库都是如此)。

class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)

Second.
该问题是在将原始 sqlite 数据库文件转储到 postgres 中(从 sqlite3 --> postgres)而不是在 postgres 中创建数据库时发现的。
因此,我在 SQLAlchemy 中运行原始代码,但这次指向 postgres 数据库:

engine = create_engine('postgresql://localhost/some_db')

这创建了所需的关系和序列(通过\ds在 postgres 中,psql)。问题解决了。

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

IntegrityError:错误:列“user_id”中的空值违反了非空约束 的相关文章

  • Python 切片对象和 __getitem__

    python 中是否有内部的东西来处理传递给的参数 getitem 不同 并自动转换start stop step构造成切片 这是我的意思的演示 class ExampleClass object def getitem self args
  • 如何使用 Python 3 绕过 HTTP Error 403: Forbidden with urllib.request

    您好 不是每次都这样 但有时在尝试访问 LSE 代码时 我会收到每一个烦人的 HTTP 错误 403 禁止消息 任何人都知道我如何仅使用标准 python 模块来克服这个问题 遗憾的是没有漂亮的汤 import urllib request
  • 从文本文件中删除特定字符

    我对 Python 和编码都很陌生 我当时正在做一个小项目 但遇到了一个问题 44 1 6 23 2 7 49 2 3 53 2 1 68 1 6 71 2 7 我只需要从每行中删除第三个和第六个字符 或者更具体地说 从整个文件中删除 字符
  • 使用 django-rest-framework 设置对象级权限

    尝试使用 django rest framework 最干净 最规范地管理 django guardian 对象级权限 我想将对象的读取权限 module view object 分配给在执行 POST 时发出请求的用户 我的基于阶级的观点
  • 将非常大的Python列表输出保存到mysql表中

    我想将 python 生成的列表的输出保存在 mysql 数据库的表中 该表如下所示 mysql 中的 myapc8 表 https i stack imgur com 4B4Hz png这是Python代码 在此输入图像描述 https
  • 反编译Python 3.9.2的PYC文件[重复]

    这个问题在这里已经有答案了 目前 我有一个 3 9 2 版本的 python 的 PYC 文件 P S 这适用于所有 3 9 及更高版本 我正在尝试反编译 PYC 文件 但它显示错误 因为 uncompyle6 或者更确切地说 新版本 de
  • 在Python中从大文件中搜索单词列表

    我是新蟒蛇 我有一个单词列表和一个非常大的文件 我想删除文件中包含单词列表中的单词的行 单词列表按排序给出 并且可以在初始化期间输入 我正在努力寻找解决这个问题的最佳方法 我现在正在进行线性搜索 这花费了太多时间 有什么建议么 您可以使用i
  • 使用 Boto3 以字符串形式打开 S3 对象

    我知道使用 Boto 2 可以使用以下命令将 S3 对象作为字符串打开 get contents as string http boto readthedocs org en latest ref file html highlight c
  • Arcpy 模数在 Pycharm 中不显示

    如何将 Arcpy 集成到 Pycharm 中 我尝试通过导入模块但它没有显示 我确实知道该模块仅适用于 2 x python arcpy 在 PyPi Python 包索引 上不可用 因此无法通过 pip 安装 要使用 arcpy 您需要
  • Python Anaconda:如何测试更新的库是否与我现有的代码兼容?

    我在 Windows 7 机器上使用 Python 2 7 Anaconda 安装进行数据分析和科学计算 当新的库发布时 例如新版本的 pandas patsy 等 您建议我如何测试新版本与现有代码的兼容性 是否可以在同一台机器上安装两个
  • Paste.httpserver 并通过 HTTP/1.1 Keep-alive 减慢速度;使用 httperf 和 ab 进行测试

    我有一个基于paste httpserver 的Web 服务器作为HTTP 和WSGI 之间的适配器 当我使用 httperf 进行性能测量时 如果每次使用 num conn 启动一个新请求 我每秒可以执行超过 1 000 个请求 如果我使
  • 两个不同长度的数据帧的列之间的余弦相似度?

    我在 df1 中有文本列 在 df2 中有文本列 df2 的长度将与 df1 的长度不同 我想计算 df1 text 中每个条目与 df2 text 中每个条目的余弦相似度 并为每场比赛给出分数 输入样本 df1 mahesh suresh
  • 使用 Python 将连续日期分组在一起

    Given dates datetime 2014 10 11 datetime 2014 10 1 datetime 2014 10 2 datetime 2014 10 3 datetime 2014 10 5 datetime 201
  • Postgres 按查询分组

    我正在尝试在 postgres 的查询中使用 group by 我无法让它按照我想要的方式工作 以便根据需要对结果进行分组 这是另一个堆栈问题的扩展我刚刚回答过的递归查询 https stackoverflow com questions
  • 无法通过 Python 子进程进行 SSH

    我需要通过堡垒 ssh 进入机器 因此 该命令相当长 ssh i
  • 如何在亚马逊 EC2 上调试 python 网站?

    我是网络开发新手 这可能是一个愚蠢的问题 但我找不到可以帮助我的确切答案或教程 我工作的公司的网站 用 python django 构建 托管在亚马逊 EC2 上 我想知道从哪里开始调试这个生产站点并检查存储在那里的日志和数据库 我有帐户信
  • minizinc python 安装

    我通过 anaconda 提示符在 python 上安装了 minizinc 就像其他软件包一样 pip install minizinc 该软件包表示已成功安装 我可以导入该模块 但是 我正在遵循基本示例https minizinc py
  • rpy2 无法加载外部库

    希望有人能帮忙解决这个问题 R版本 2 14 1rpy2版本 2 2 5蟒蛇版本 2 7 3 一直在尝试在 python 脚本中使用 rpy2 加载 R venneuler 包 该包以 rJava 作为依赖项 venneuler 和 rJa
  • pandas 中数据帧中的随机/洗牌行

    我目前正在尝试找到一种方法来按行随机化数据框中的项目 我在 pandas 中按列洗牌 排列找到了这个线程 在 pandas 中对 DataFrame 进行改组 排列 https stackoverflow com questions 157
  • 将 Keras 集成到 SKLearn 管道?

    我有一个 sklearn 管道 对异构数据类型 布尔 分类 数字 文本 执行特征工程 并想尝试使用神经网络作为我的学习算法来拟合模型 我遇到了输入数据形状的一些问题 我想知道我想做的事情是否可能 或者我是否应该尝试不同的方法 我尝试了几种不

随机推荐

  • 检查会员/财产类型

    假设我有任何课程 比如这个 class SomeClass val aThing String val otherThing Double 然后我用反射来分析这个类的字段 for field in SomeClass declaredMem
  • 如何在 Node.JS 中限制(或排队)对外部进程的调用?

    Scenario 我有一个 Node JS 服务 使用编写ExpressJS 通过 DnD 接受图像上传 example 上传图像后 我对其执行一些操作 从中提取 EXIF 数据 调整大小 这些电话正在通过节点 imagemagick目前的
  • Chrome DevTools 扩展:如何从内容脚本中的元素面板中获取选定的元素?

    我已经完成了我的研究并为此苦苦挣扎了一段时间 但我需要你的帮助 我正在构建一个 Chrome DevTools 扩展 它应该传递 元素 面板中当前选定的元素作为参考到内容脚本中定义的 JS 对象 重要的是我要通过参考到选定的元素 或者从内容
  • 获取 64 位整数中的位位置数组

    好吧 这可能听起来有点复杂 但这就是我想要做的 以10101010101 并返回 0 2 4 6 8 10 包含所有已设置位的位置的数组 这是我的代码 UINT DQBitboard firstBit U64 bitboard static
  • jQuery:在模糊()事件之前触发单击()

    我有一个输入字段 我尝试在其中提出自动完成建议 代码看起来像
  • 如何在 Chrome 的弹出窗口上切换设备模式?

    我有一个网络应用程序 其中的聊天功能会在新的弹出窗口中打开 通常 在 Chrome 中我可以按 F12 并单击智能手机的图标来切换它 但在弹出的窗口中并没有出现该图标 这对我来说很重要 因为我需要限制弹出窗口的连接以模拟用户从聊天中断开连接
  • 如何在 GCC 中指定枚举大小?

    我想为枚举指定 64 位的枚举大小 这怎么可能通过 GCC 实现呢 该代码不需要 可移植 因为我只对使代码在 x86 32 和 x86 64 Linux 的 GCC 编译上工作感兴趣 这意味着任何可以提供我想要的功能的黑客都可以 只要它适用
  • 处理urllib2的超时? - Python

    我在 urllib2 的 urlopen 中使用超时参数 urllib2 urlopen http www example org timeout 1 我如何告诉Python 如果超时到期 应该引发自定义错误 有任何想法吗 您想要使用的情况
  • 为什么我的区域特定 Web API 可以从所有其他区域访问?

    我目前正在开发一个 ASP NET MVC 4 Web 应用程序项目 该项目必须遵守以下设计决策 主 MVC 应用程序位于解决方案的根目录中 所有管理员功能都位于单独的区域中 每个外部方 例如供应商 都有自己的区域 每个区域 包括根部 都构
  • 什么是 ruby​​ on Rails?

    我是一名前端开发人员 HTML CSS JS 和 jQuery 我了解一点 PHP 我正在尝试了解 Ruby Ruby on Rails 是什么 On http rubyonrails org 它说 Ruby on Rails 是一个开源
  • C++11 字符串开头的大小写不敏感比较(unicode)

    我必须检查特定字符串是否以另一个字符串开头 字符串使用 utf8 编码 比较应不区分大小写 我知道这与那个主题非常相似C 中不区分大小写的字符串比较但我不想使用 boost 库 我更喜欢便携式解决方案 如果 几乎 不可能 我更喜欢面向 Li
  • Angularjs 获取巨大 json 文件的请求

    我需要向用户显示数据库中的一些数据 数据位于 json 文件中 并且大小相当大 json 文件的大小大约在 15MB 左右 我创建了一个服务并使用 Promise api 发出成功的请求并加载数据并通过在 div 上执行 ng repeat
  • SFINAE 与以下 has_member 函数一起无法正常工作是什么?

    我正在尝试以下示例沃尔特 布朗 Walter Brown 的 TMP 演讲我正在努力得到他的has member实施工作 然而 实现似乎错误地返回 true 这让我相信 SFINAE 有一些我不理解的细节 include
  • 在 MATLAB 中使用 imshow 方法显示图像标题

    如何在 MATLAB 图形中显示图像标题 我有以下代码 I imread images pap png subplot 1 2 1 imshow I here I want to show labels Use the title命令 它的
  • 用于开发新的Windows Azure管理门户的框架?

    有谁知道微软使用什么框架在Windows Azure上开发类似Metro的Web管理门户 如果是这样 开发者可以使用吗 I 提出了同样的问题并因此受到很多仇恨 获胜的答案是地铁用户界面包 它完成了 Azure 中的许多工作 但您必须自己实现
  • 如何在 java 中使 JTable 可编辑

    我在 java 中使用 JTable 但它不允许我编辑单元格 private final TableModel dataModel new AbstractTableModel public int getColumnCount retur
  • proxyMode ScopedProxyMode.TARGET_CLASS 与 ScopedProxyMode.INTERFACE

    正如其他 SO 答案所建议的 根据您的需要使用代理模式类型 我仍然很困惑 Configuration ComponentScan public class Application public static void main String
  • Python:更新线程中的参数

    我想知道当该参数在程序主体中获得新值时是否可以启动一个新线程并更新其参数 所以像这样 i 0 def foo i print i time sleep 5 thread start new thread foo i while True i
  • SQL 选择 MAX(COUNT)

    我正在尝试选择具有 MAX 微帖子数的用户 SELECT name count FROM users INNER JOIN microposts ON microposts user id users id GROUP BY users i
  • IntegrityError:错误:列“user_id”中的空值违反了非空约束

    使用 postgres PostgreSQL 9 4 5 我刚刚迁移了一个sqlite3数据库到一个postgresqlD b 由于某种原因 自从这次迁移以来 当我尝试创建用户时 出现了有关user id 这是主键 正在被提升 以前这不是问