在不可为空的列中忽略默认值

2024-05-04

我正在尝试使用以下 SQL alchemy 脚本在表中创建一个新的布尔型、不可空列(默认值=True):

from sqlalchemy import MetaData, Table, Boolean, Column

def upgrade(migrate_engine):
    meta = MetaData(bind=migrate_engine)
    message_table = Table('message', meta, autoload=True)
    col = Column('include_signature', Boolean(), default=True, nullable=False)
    col.create(message_table)

这会导致一个相当令人费解的错误:

  File "src/adhocracy/migration/versions/061_optional_massmessage_signature.py", line 7, in upgrade
    col.create(message_table)
  File "eggs/sqlalchemy_migrate-0.7.2-py2.6.egg/migrate/changeset/schema.py", line 528, in create
    engine._run_visitor(visitorcallable, self, connection, **kwargs)
  File "eggs/SQLAlchemy-0.7.10-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py", line 2302, in _run_visitor
    conn._run_visitor(visitorcallable, element, **kwargs)
  File "eggs/SQLAlchemy-0.7.10-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py", line 1972, in _run_visitor
    **kwargs).traverse_single(element)
  File "eggs/sqlalchemy_migrate-0.7.2-py2.6.egg/migrate/changeset/ansisql.py", line 53, in traverse_single
    ret = super(AlterTableVisitor, self).traverse_single(elem)
  File "eggs/SQLAlchemy-0.7.10-py2.6-linux-x86_64.egg/sqlalchemy/sql/visitors.py", line 106, in traverse_single
    return meth(obj, **kw)
  File "eggs/sqlalchemy_migrate-0.7.2-py2.6.egg/migrate/changeset/databases/sqlite.py", line 75, in visit_column
    super(SQLiteColumnGenerator,self).visit_column(column)
  File "eggs/sqlalchemy_migrate-0.7.2-py2.6.egg/migrate/changeset/ansisql.py", line 101, in visit_column
    self.execute()
  File "eggs/sqlalchemy_migrate-0.7.2-py2.6.egg/migrate/changeset/ansisql.py", line 42, in execute
    return self.connection.execute(self.buffer.getvalue())
  File "eggs/SQLAlchemy-0.7.10-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py", line 1449, in execute
    params)
  File "eggs/SQLAlchemy-0.7.10-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py", line 1628, in _execute_text
    statement, parameters
  File "eggs/SQLAlchemy-0.7.10-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py", line 1698, in _execute_context
    context)
  File "eggs/SQLAlchemy-0.7.10-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py", line 1691, in _execute_context
    context)
  File "eggs/SQLAlchemy-0.7.10-py2.6-linux-x86_64.egg/sqlalchemy/engine/default.py", line 331, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (OperationalError) Cannot add a NOT NULL column
with default value NULL '\nALTER TABLE message ADD include_signature BOOLEAN NOT NULL' ()

据我了解,sqlalchemy 缺少默认值,但我确实包括了default=True!这里有什么问题吗?


Use server_default="true", 像那样:

col = Column('include_signature', Boolean(), default=True,
             server_default="true", nullable=False)

Where default用于类实例并且server_default用于数据库列定义。

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

在不可为空的列中忽略默认值 的相关文章

  • SQlite删除内连接

    我已经阅读了很多其他答案 但无法使其正常工作 select from invTypes inner join invGroups on invtypes groupID invgroups groupID where invGroups c
  • 删除最初使用“未知分词器”创建的表?

    我有一个 sqlite3 数据库 错误消息显示 无法删除此数据库中的单个表unknown tokenizer mm 我直接用命令试了一下DROP TABLE tablename 里面最新的SQLiteSpy http www yunqa d
  • 如何在算术表达式的结果上添加 SQLAlchemy 标签?

    我如何将这样的东西翻译成 SQLAlchemy select x y as difference 我知道该怎么做 x label foo 但我不确定在哪里放置下面的 label 方法调用 select table c x table c y
  • 错误:找不到模块 \node_modules\sqlite3\lib\binding\electron-v8.0-win32-x64\node_sqlite3.node'

    我在 Electron 8 1 中安装 sqlite3 时遇到问题 我收到以下错误 Error Cannot find module D TASK 2020 1 1 AMS node modules sqlite3 lib binding
  • 捕获 SQLAlchemy 异常

    我可以使用什么捕获 SQLAlechmy 异常的上层异常 gt gt gt from sqlalchemy import exc gt gt gt dir exc ArgumentError CircularDependencyError
  • Java Sqlite Gradle

    我对 gradle 和 java 还很陌生 我有一个使用 sqlite 的项目 它通过 intellij idea 运行良好 但我无法从终端运行它 它会抛出异常 java lang ClassNotFoundException org sq
  • 如何找到查询结果的大小

    我在 Rails 中有以下查询 records Record select y id source where source gt source y id gt y id group y id source having count 1 如
  • Android 中表与游标的并集

    我正在尝试将两个具有相同字段的表合并起来 通过内容提供程序 创建一个用于创建 ListView 的游标 Override public Cursor query Uri uri String projection String select
  • 如何检索 SQLAlchemy 结果集的 python 列表? [复制]

    这个问题在这里已经有答案了 我有以下查询来检索单列数据 routes query select schema stop times c route number schema stop times c stop id stop id dis
  • 我是否需要安装 SQLite 才能使 SQLiteJDBC 正常工作?

    我想我只是没有 明白 如果我的计算机上尚未安装 SQLite 并且我想编写一个使用嵌入式数据库的 Java 应用程序 并且我将 SQLiteJDBC JAR 下载 导入到我的项目中 那么这就是我所需要的吗 或者 我是否需要先安装 SQLit
  • 从 SQLite 命令行 shell 中打开数据库文件

    我正在使用SQLite 命令行外壳 http www sqlite org sqlite html 如文档所述 我可以通过将数据库作为可执行文件的参数提供来打开数据库 sqlite3 data db 我不知道如何打开数据库文件在工具内在调用
  • 如何确保与 sqlite 和 NFS 的文件安全同步

    我最近将应用程序的工作区文件格式转换为 sqlite 为了确保 NFS 上的稳健操作 我使用了通用更新策略 对本地硬盘上临时位置中存储的副本进行了所有修改 仅在保存时 我才会通过使用临时文件复制原始文件来修改原始文件 可能在 NFS 上 我
  • 使用 sqlite 离线存储数据的 Web 表单应用程序

    我有一个 asp net Web 表单应用程序 它在远程服务器上使用 sql server 2005 所有控件均使用 linq to sql 绑定 我正在尝试提供完整的离线功能 所以我想知道是否可以像 sql server db 一样创建一
  • 如何使用 FieldDefs 在运行时创建新的 SQLite 文件和表?

    我正在使用 Delphi Seattle 在全新的 SQLite 文件中创建一个全新的表 并且仅使用 FieldDefs 和非可视代码 我可以使用 ExecSQL CREATE TABLE 语法创建一个表 但不能如下所示 我得到 没有这样的
  • Android:打开和关闭SQLite数据库

    我正在开发Android应用程序 我经常在其中访问本地数据库 该数据库可以从不同的主题访问 因此我遇到了数据库的协调问题 我使用以下open and close method public void open mDb mDbHelper g
  • 如何在附加的 sqlite 数据库中创建外键?

    我正在尝试创建一个 sqlite3 数据库作为模拟生产环境的测试环境 由于生产的设置方式 表处于多个模式中 我已经在 DBIx Class 中设置了类 使用 schema gt storage gt dbh do将数据库与架构附加在一起 并
  • sqlite3从打印数据中删除括号

    我创建了一个脚本 用于查找数据库第一行中的最后一个值 import sqlite3 global SerialNum conn sqlite3 connect MyFirstDB db conn text factory str c con
  • SQLAlchemy 为大型表定义 __repr__ 的最佳方法

    我在 SQLAlchemy 中有一堆我想要定义的表 repr 标准约定看起来像这样 def repr self return
  • 删除flask中的一对一关系

    我目前正在使用 Flask 开发一个应用程序 并且在删除一对一关系中的项目时遇到了一个大问题 我的模型中有以下结构 class User db Model tablename user user id db Column db String
  • 如何使用原始 SQL 查询实现搜索功能

    我正在创建一个由 CS50 的网络系列指导的应用程序 这要求我仅使用原始 SQL 查询而不是 ORM 我正在尝试创建一个搜索功能 用户可以在其中查找存储在数据库中的书籍列表 我希望他们能够查询 书籍 表中的 ISBN 标题 作者列 目前 它

随机推荐

  • 使用 ExecuteSqlCommand 调用存储过程(需要未提供的参数)

    我正在尝试使用 EF 调用存储过程context Database ExecuteSqlCommand因为我的参数之一是数据表 以下是该过程的参数 ALTER PROCEDURE mySchema myProc customerId INT
  • 由于 MSVCR110.dll,MS Visual Studio 2012 Ultimate 无法启动

    当我尝试运行 MVS 2012 时 我总是收到错误 在库 DLL MSVCR110 dll 中找不到过程 crtCreateSymbolicLinkW 的入口点 我已经从我的另一台计算机复制了这个 dll 文件 一切正常 但没有帮助0 o
  • 实现自己的“工厂”以重用 WPF 中的视图

    我目前正在使用WAF WPF 应用程序框架 http waf codeplex com discussions 361216用于 WPF 编程 我真的很喜欢为我的应用程序中的每个小视图单元拥有一个自己的 ViewModel 的想法 我随后以
  • 内置方法读取couchdb文件大小?

    我正在尝试使用 couchdb 作为消息存储 并想报告消息大小 理想情况下 读取 size 属性会很好 最坏的情况是我可以检查整个文档 JSON 的字符串长度 我什至可能想使用尺寸作为查看键 您认为记录文档大小的最佳方法是什么 为什么您认为
  • 使用 varargin (...) 时如何显示不同的函数用法?

    当您输入 Matlab 函数名称并打开大括号时 例如sum 在命令窗口中 将打开一个工具提示 显示此函数的所有可能用法 当我编写自己的接受函数时varargin 工具提示仅显示一个选项 而不是varargin puts e g myfunc
  • 如何将 OpenCV 等待键与 Chaquopy 一起使用

    我正在尝试使用 Chaquopy 将计算机视觉应用程序移植到 Android 当我尝试运行脚本时 以下行中出现以下错误 cv2 waitKey 100 打印到嵌入式 python 控制台的错误是 java chaquopy CQPEnv c
  • 带有 API 21 的 Snackbar

    我正在尝试在我的应用程序中实现新的 Snackbars 但我做不到 首先 我从以下位置下载了 zip 文件这个 SnackBarSampleActivity https github com nispok snackbar blob mas
  • 如何测试包含应用程序是否授予“允许完全访问”权限?

    我正在开发一个键盘扩展项目 在应用程序代码的某些点 我需要测试用户是否已授予键盘扩展的 允许完全访问 权限 协议是我需要从应用程序端进行这些测试 并在此基础上让用户访问键盘设置或在未授予权限的情况下提醒他 问题是这里提供的方法如下 func
  • pexpect 和 ssh:如何在 su - root -c 之后格式化一串命令

    我正在尝试迭代服务器和密码列表来更改一组服务器上的 sshd 配置 以便我可以使用无密码 SSH 密钥通过 root 登录 运行命令 我可以在 bash 中轻松完成此操作 但我正在尝试学习 Python 并且 显然 希望放弃手动输入密码 这
  • 如何保证auto_increment数字没有间隙?

    我有一个关于自动递增的问题 这是我的表 我首先拥有它 它可以顺利地递增 id id name 1 name1 2 name2 3 name3 4 name4 5 name5 6 name6 但是当我删除一条记录并插入一条新记录时 id从7开
  • bash while 循环线程

    我有一个 while 循环读取来自 a 的行 hosts while read line do ip line check done lt hosts 我的问题是我可以使用某种方法来加快速度 或者一次在 10 个主机上运行检查 每个检查都在
  • Firebase BigQuery 导出 - 历史数据

    当我尝试在 BigQuery 上搜索事件的历史数据时 我只能找到上周的事件 我无法在任何地方找到信息是否正确 或者我做错了什么 基本上我似乎只能查询过去一周的 events YYYYMMDD 它是否正确 您是否有机会在一周前从 Fireba
  • 如何找到 Rails 中的当前路线?

    我需要知道 Rails 中过滤器中的当前路线 我怎样才能知道它是什么 我正在处理 REST 资源 但没有看到命名路由 如果您尝试对视图中的某些内容进行特殊处理 您可以使用current page as in 或者一个动作和ID 或命名路线
  • 使用 PHP 将图像中的一种颜色替换为另一种颜色

    有人可以帮我编写一个简单的脚本 使用 PHP 将图像中的特定颜色替换为另一种颜色吗 这是一个示例 颜色从绿色变为黄色 如果你的意思是在 PHP 中使用 GD 库 你应该检查一下图像过滤器 http php net manual en fun
  • Chart.JS 工具提示回调标签和标题 (v3.5)

    请注意 v2 有很多答案 这是 v3 的 我正在尝试设置工具提示label and title对于圆环图 Code Create the donut chart donut new Chart questions positivity do
  • 为一列中的多行生成不同的随机数

    我得到了一列带有整数值 n 行 的列 我想生成满足特定条件的值的正态分布范围内的随机数 我尝试使用下面的代码 但它们太慢了 df members bd df members bd apply lambda x np random norma
  • Typescript,返回元组的通用可变参数工厂函数

    在打字稿中 可以像这样创建工厂函数 并定义返回类型 function factory1
  • 如何从实体框架获取模式名称?

    我有以下代码 using WdmEntities context new WdmEntities get object models from context ObjectContext objContext IObjectContextA
  • 为什么我的 FPS 相机一劳永逸地滚动?

    如果我忽略四元数代数的肮脏细节 我想我理解了旋转和平移变换背后的数学 但仍然不明白我做错了什么 为什么我的相机一劳永逸地滚动 更具体地说 我应该如何从相机的方向 旋转矩阵 计算相机视图矩阵 我正在用 Python 编写一个简约的 3d 引擎
  • 在不可为空的列中忽略默认值

    我正在尝试使用以下 SQL alchemy 脚本在表中创建一个新的布尔型 不可空列 默认值 True from sqlalchemy import MetaData Table Boolean Column def upgrade migr