更新现有表/模型列/字段?

2023-12-21

如何更新表中的列和列数据类型PeeWee http://docs.peewee-orm.com/en/latest/index.html?

我已经创建了表Person在我的模型的数据库中。但我现在已向模型添加了一些新字段,并更改了某些现有字段/列的类型。

以下不会更新表结构:

psql_db = PostgresqlExtDatabase(
    'MyDB',
    user='foo',
    password='bar',  
    host='', 
    port='5432',
    register_hstore=False
)

class PsqlModel(Model):
    """A base model that will use our Postgresql database"""
    class Meta:
        database = psql_db


class Person(PsqlModel):
    name = CharField()
    birthday = DateField()          # New field
    is_relative = BooleanField()    # Field type changed from varchar to bool

    def __str__(self):
        return '%s, %s, %s' % (self.name, self.birthday, self.is_relative)


psql_db.connect()

# is there a function to update/change the models table columns??
psql_db.create_tables([Person], True)  # Hoping an update of the table columns occurs

# Error because no column birthday and incorrect type for is_relative
grandma_glen = Person.create(name='Glen', birthday=date(1966,1,12), is_relative=True)

从文档中:http://docs.peewee-orm.com/en/latest/peewee/example.html?highlight=alter http://docs.peewee-orm.com/en/latest/peewee/example.html?highlight=alter

创建表后添加字段将需要您 删除表并重新创建它或手动添加列 使用 ALTER TABLE 查询。

或者,您可以使用架构迁移扩展来更改 使用 Python 的数据库架构。

From http://docs.peewee-orm.com/en/latest/peewee/playhouse.html#migrate http://docs.peewee-orm.com/en/latest/peewee/playhouse.html#migrate:

# Postgres example:
my_db = PostgresqlDatabase(...)
migrator = PostgresqlMigrator(my_db)
title_field = CharField(default='')
status_field = IntegerField(null=True)

migrate(
    migrator.add_column('some_table', 'title', title_field),
    migrator.rename_column('some_table', 'pub_date', 'publish_date'),
    migrator.add_column('some_table', 'status', status_field),
    migrator.drop_column('some_table', 'old_column'),
)

还有很多其他操作是可能的。

因此,首先您需要更改表架构,然后可以更新模型以反映这些更改。

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

更新现有表/模型列/字段? 的相关文章

  • Python GTK + webkit - 在 gtk.main() 之后插入 JavaScript

    我在终端中尝试了这个 一切正常 但是如果我在脚本内运行这个 我无法在 gtk main 之后插入 JavaScript import gtk import webkit w gtk Window b webkit WebView w add
  • 无法使用 BeautifulSoup 和 Requests 抓取下拉菜单

    我想抓取百年灵网站上的产品页面以获取各种信息 示例页面 https www breitling com gb en watches navitimer b01 chronograph 46 AB0127211C1A1 https www b
  • Paramiko SSHException 通道已关闭

    我一直在使用 Paramiko 在 Linux Windows 机器上发送命令 它可以很好地在 Ubuntu 机器上远程执行测试 但是 它不适用于 Windows 7 主机 以下是我收到的错误 def unit for event self
  • Perl 是否有相当于 Python 的 `if __name__ == '__main__'` 的功能?

    有没有一种方法可以确定当前文件是否是 Perl 源中正在执行的文件 在 Python 中 我们使用以下结构来做到这一点 if name main This file is being executed raise NotImplemente
  • 将一维数组转换为下三角矩阵

    我想将一维数组转换为较低的零对角矩阵 同时保留所有数字 我知道numpy tril函数 但它用零替换了一些元素 我需要扩展矩阵以包含所有原始数字 例如 10 20 40 46 33 14 12 46 52 30 59 18 11 22 30
  • NumPy 和 SciPy - .todense() 和 .toarray() 之间的区别

    我想知道使用是否有什么区别 优点 缺点 toarray vs todense 在稀疏 NumPy 数组上 例如 import scipy as sp import numpy as np sparse m sp sparse bsr mat
  • Tensorflow 不分配完整的 GPU 内存

    Tensorflow 默认分配所有 GPU 内存 但我的新设置实际上只有 9588 MiB 11264 MiB 我预计大约 11 000MiB 就像我的旧设置一样 张量流信息在这里 from tensorflow python client
  • Pandas groupby apply 执行缓慢

    我正在开发一个涉及大量数据的程序 我正在使用 python pandas 模块来查找数据中的错误 这通常工作得非常快 然而 我当前编写的这段代码似乎比应有的速度慢得多 我正在寻找一种方法来加快速度 为了让你们正确测试它 我上传了一段相当大的
  • pandas 中连续数据的平行坐标图

    pandas 的 parallel coordinates 函数非常有用 import pandas import matplotlib pyplot as plt from pandas tools plotting import par
  • uri 警告中缺少端口:使用 Python OpenCV cv2.VideoCapture() 打开文件时出错

    当我尝试流式传输 ipcam 时 出现了如下所示的错误 tcp 000000000048c640 uri 中缺少端口 警告 打开文件时出错 build opencv modules videoio src cap ffmpeg impl h
  • 根据第三个变量更改散点图中的标记样式

    我正在处理多列字典 我想绘制两列 然后根据第三列和第四列更改标记的颜色和样式 我很难改变 pylab 散点图中的标记样式 我的方法适用于颜色 不幸的是不适用于标记样式 x 1 2 3 4 5 6 y 1 3 4 5 6 7 m k l l
  • 为什么 __instancecheck__ 没有被调用?

    我有以下 python3 代码 class BaseTypeClass type def new cls name bases namespace kwd result type new cls name bases namespace p
  • 如何使用 django-pyodbc (ubuntu 16.04) 配置数据库设置 Django-MSSQL?

    我是 Django 新手 目前正在尝试使用另一个数据库来保存我的模型 即MS SQL 我的数据库部署在docker容器中 903876e64b67 microsoft mssql server linux bin sh c opt mssq
  • Django Rest Framework POST 更新(如果存在或创建)

    我是 DRF 的新手 我阅读了 API 文档 也许这是显而易见的 但我找不到一个方便的方法来做到这一点 我有一个Answer与 a 具有一对一关系的对象Question 在前端 我曾经使用 POST 方法来创建发送到的答案api answe
  • 在 scipy 中创建新的发行版

    我试图根据我拥有的一些数据创建一个分布 然后从该分布中随机抽取 这是我所拥有的 from scipy import stats import numpy def getDistribution data kernel stats gauss
  • 在 Python 中访问 argparse 的参数值

    我正在尝试为我的程序设置一些简单的标志参数 但无法弄清楚如何访问它们 我有 argparser parser argparse ArgumentParser description Simple PostScript Interpreter
  • 更新 SQLAlchemy 中的特定行

    我将 SQLAlchemy 与 python 一起使用 我想更新表中等于此查询的特定行 UPDATE User SET name user WHERE id 3 我通过 sql alchemy 编写了这段代码 但它不起作用 session
  • 在父类中访问子类变量

    我有一个父类和一个继承的子类 我想知道如何访问我的父类中的子类变量 我尝试了这个但失败了 class Parent object def init self print x class Child Parent x 1 x Child Er
  • 使用 SERVER_NAME 时出现 Flask 404

    在我的 Flask 配置中 我将 SERVER NAME 设置为 app example com 之类的域 我这样做是因为我需要使用url for with external网址 如果未设置 SERVER NAME Flask 会认为服务器
  • 计算包含字母/数字的行数

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

随机推荐

  • Django Admin:根据先前的字段值填充字段

    我在 django admin 中有一个模型如下 ChoiceA on false on false on true on true ChoiceB always always never never id models CharField
  • SAFESEH:NO 选项的实际作用

    我正在尝试使用boost asio spawn功能就像在example http www boost org doc libs 1 55 0 doc html boost asio example cpp03 spawn echo serv
  • 使用 Javascript 向用户发送 HTTP 附件(打开浏览器的“另存为...”对话框)

    我是网络开发的新手 所以如果这个问题很菜鸟 我深表歉意 我想在 Javascript 中请求时向用户提供服务器硬盘上的文件 即发送 HTTP 附件以触发浏览器的 另存为 对话框 用户单击页面上的按钮 服务器根据他 她的一些帐户设置 和其他参
  • 在 Unity 中查找一组 3D 点的定向边界框

    我有一组 3D 点 或者实际上是小球体 我需要使用 Unity 3D 将它们包围在尽可能小的 3D 框内 在封闭框只能移动和缩放的情况下 解决方案非常简单 您只需迭代所有点并封装每个点即可 但我还需要找到盒子的最佳方向 因此 为了用 ASC
  • 使用 R 在 postgres 中设置模式名称

    我正在使用 R 连接到 PostgreSQL 数据库 使用以下函数完成连接 dbConnect m dbname dbname host host port port user user password password m是驱动程序 p
  • Java Applet 使用 Chrome 浏览器启动客户端程序的替代方案是什么?

    我正在使用 ASP net 和 C 开发 Web 应用程序 我的目标是检查客户端计算机上的桌面应用程序 如果它存在 那么我应该启动它 否则 如果它不存在 我们应该下载 安装然后启动它 我可以使用 Java Applet 开发这个模块 但不幸
  • Perl 函数名称冲突

    我遇到的情况是 我正在使用的模块有一个函数 其名称与我自己的模块中的函数完全相同 当我尝试调用模块中的函数时 OO Perl 所以 self gt function 它改为从其他模块调用该函数 我已经通过重命名我的函数来解决这个问题 但有趣
  • 如何处理Excel工作表中的数据更改事件以刷新所有数据透视表?

    我有一个应用于工作表及其更改的 VBA 代码 因此 每当工作表中有新条目或删除 任何更改 时 它都会刷新附加到它的所有数据透视表 Private Sub Worksheet Change ByVal Target As Range This
  • 检查python脚本中是否挂载了NFS共享

    我编写了一个 python 脚本 该脚本依赖于某个可用的 NFS 共享 如果未安装 NFS 共享 它会很乐意将文件复制到应安装的本地路径 但稍后当它尝试将在 NFS 服务器上创建的某些文件复制回来时会失败 我想专门捕获这个错误 这样我就可以
  • 使用 PNG 图像作为 GrabCut 的蒙版

    我有一个带有绿色和红色线条以及透明背景的 png 图像 我需要使用它作为执行 GrabCut 的遮罩 但我得到了意想不到的结果 这是我的代码 find the mask Mat mask mask create image size CV
  • 关闭弹出窗口并导航到 jQuery Mobile 中的另一个页面

    当用户按下弹出窗口内的按钮时 我试图关闭弹出窗口 对话框 并导航到另一个页面 单页面应用程序 多个 页面 jQM 1 4 0 如果我点击弹出窗口中的 是 按钮 它将导航到我想要的 page3 然后跳回起始页 如果我注释掉 popup clo
  • Go 中的一流函数

    我来自 JavaScript 它具有一流的函数支持 例如 您可以 将一个函数作为参数传递给另一个函数 从函数返回一个函数 有人能给我一个例子来说明如何在 Go 中做到这一点吗 Go语言和函数式编程 http livingcode org 2
  • MSMQ 或 Service Broker 或用于 FIFO 消息处理的批量插入?

    我们有一个场景 需要针对传入的实时事件对数据库使用更新 插入查询 我们可以选择下面提供的任何一个选项 1 MSMQ 2 SQL 服务代理 3 自定义构建的缓存机制 使用文件缓存 批量插入 触发器将插入转换为更新 如果行已存在 等 我们没有使
  • 如何在 GitHub 操作构建期间引用我的存储库中的目录?

    我有一些测试数据用于 pytest 的单元测试 我用环境变量设置了它们的位置 查看我的 pytest 日志 构建会看到环境变量 但它们引用的位置不存在 在 GitHub Actions 文档中 存储库应位于 home runner Repo
  • 在 Glassfish 服务器上的 Web 服务中使用数据库时出现“找不到合适的驱动程序”错误

    我有一个 Java Web 应用程序 并使用来自消费者 Java 应用程序的操作来处理 MySQL 数据库 当我尝试连接到数据库时 我得到 No suitable driver found for jdbc mysql localhost
  • 检索 Delphi 窗口句柄

    我正在尝试从外部应用程序获取 Delphi 应用程序的窗口句柄 我可以看到创建了一些窗口 TApplication TFrmMain 和其他一些窗口 并且我知道 TApplication 是 控制器 但从不可见 但是 我可以读取真实窗口的值
  • Rails form_for 提交按钮不起作用

    感谢您的耐心等待 对于 Rails 来说还是很陌生 使用 Rails 3 2 为一个简单的应用程序制作注册页面 我的问题是 无论表单中的信息是否有效 表单上的提交按钮都不会产生任何效果 用户模型和数据库似乎都工作正常 如果我从 Rails
  • 保存带有透明度/Alpha 通道的 TIFF

    这是我的问题 我需要创建一个 TIFF 和一个 PNG 其中调色板包含特定颜色和 Alpha 我实际上能够处理 PNG 但不能处理 TIFF 我在互联网上搜索并发现 TIFF 应该处理透明度 但并非所有软件都可以 我尝试了很多方法来加载 T
  • 非标准评估和 PackedArray

    我之前有过asked https stackoverflow com questions 4181470 custom function with non standard evaluation behaves like table怎么做a
  • 更新现有表/模型列/字段?

    如何更新表中的列和列数据类型PeeWee http docs peewee orm com en latest index html 我已经创建了表Person在我的模型的数据库中 但我现在已向模型添加了一些新字段 并更改了某些现有字段 列