alembic相关内容

Alembic --autogenerate 产生空迁移

我第一次尝试使用 Alembic 并想使用 这里 我的项目结构是这样的 项目/配置/__init__.py开发者.py测试.py核/应用程序/楷模/__init__.py用户.pyD b/蒸馏器/版本/环境.pyalembic.ini 我正在使用 Flask 和 SQLAlchemy 以及它们的 Flask-SQLAlchemy 扩展.我的模型 User 看起来像 类用户(UserMi ..
发布时间:2022-01-23 09:40:17 Python

在事务中运行 alembic 升级迁移

alembic upgrade head 是否在事务内运行,以便所有数据库更改成功或失败?如果不是,为什么要这样设计? 解决方案 我的理解是 alembic 在支持它的数据库(如 Postgres)的事务中运行.如果您使用的数据库不支持此功能(cough MySQL cough),则无法使用此功能. ..
发布时间:2022-01-06 21:07:58 其他开发

使用 Flask-SQLAlchemy 在 Alembic 自动生成迁移中未检测到任何变化

我无法让 Alembic 使用 db.Model (Flask-SQLAlchemy) 而不是 Base 自动生成从更改到类的候选迁移. 我修改了 env.py 来创建我的 Flask 应用程序,导入所有相关模型,初始化数据库,然后运行迁移: ...uri = 'mysql://user:password@host/dbname?charset=utf8'app = Flask(__nam ..

使用 Alembic 更改 Enum 字段

当使用早于 9.1 的 PostgreSQL 版本(为枚举添加 ALTER TYPE)时,如何在 alembic 迁移中将元素添加到枚举字段?这个 SO question解释了直接过程,但我不太确定如何最好使用 alembic 进行翻译. 这就是我所拥有的: new_type = sa.Enum('nonexistent_executable', 'output_limit_exceede ..
发布时间:2021-12-30 14:59:00 Python

Flask-SQLAlchemy 小写索引 - 跳过功能,SQLAlchemy 反射不支持

首先.抱歉,如果有人回答了这个问题,但我在任何地方都找不到答案. 我需要在 Flask-SQLAlchemy 对象上定义一个小写索引. 我遇到的问题是我需要将模型用户名和电子邮件字段存储为小写,以便我可以使用 User.query.filter(func.lower(username) == func.lower(username) 检查它们).first() 到目前为止,我一直 ..
发布时间:2021-12-30 14:52:45 Python

修改数据作为 alembic 升级的一部分

作为 alembic 升级的一部分,我想修改一些数据库数据. 我以为我可以在迁移升级中添加任何代码,但以下失败: def upgrade():### 由 Alembic 自动生成的命令 - 请调整!###op.add_column('smsdelivery', sa.Column('sms_message_part_id', sa.Integer(), sa.ForeignKey('sms ..
发布时间:2021-12-30 14:47:43 Python

运行 Flask-Migrate 时保留数据库中的现有表

我有一个包含现有表的数据库.我的代码有一个 User 模型.我使用 Flask-Migrate 生成了一个修订版并运行它,它在创建用户表时删除了我现有的表.如何在不删除现有表的情况下运行迁移? from flask import Flask从flask_sqlalchemy 导入SQLAlchemy从flask_script 导入管理器from flask_migrate import Migr ..
发布时间:2021-12-14 11:19:10 Python

撤消上次 Alembic 迁移

我用 alembic revision --autogenerate 创建了一个迁移,用 alembic upgrade head 将它应用到我的开发数据库,​​然后意识到这不是我想要的. 如何恢复迁移以便我可以调整它并重试? 解决方案 假设您只想返回一个修订版,使用 alembic downgrade 带有 相对迁移标识符 -1: alembic 降级 -1 这将运行最新版本的 ..
发布时间:2021-08-22 18:36:32 Python

如何在 sqlalchemy 迁移脚本或 sqlite 的配置文件中打开“PRAGMA foreign_keys = ON"?

在合适的 sqlite 版本中,我们可以通过 'PRAGMA foreign_keys = ON' 来强制执行外键约束.但是,用户无法每次建立连接时都登录数据库.所以我想知道我们如何让它在 sqlalchemy/alembic 的迁移脚本中工作?非常感谢! 解决方案 参见 外键支持来自 SA SQLite 文档: 导入 sqlite3从 sqlalchemy.engine 导入引擎从 s ..
发布时间:2021-08-22 18:34:49 数据库

作为 alembic 升级的一部分修改数据

作为 alembic 升级的一部分,我想修改一些数据库数据. 我以为我可以在迁移升级中添加任何代码,但以下失败: def upgrade():### 由 Alembic 自动生成的命令 - 请调整!###op.add_column('smsdelivery', sa.Column('sms_message_part_id', sa.Integer(), sa.ForeignKey('sms ..
发布时间:2021-08-22 18:33:33 Python

Alembic 支持多个 Postgres 模式

如何使用 Alembic 的 --autogenerate 迁移多个 SQL Alchemy 模型中未硬编码的 Postgres 模式?(SQLAlchemy 对 Postgres 模式的支持 的镜像问题,但对于 Alembic). 特别是,我们使用 Postgres 模式来分离共享同一组表的不同客户端.此外,还有一个在客户端之间共享内容的架构.SQL Alchemy 模型不知道模式,模式是 ..
发布时间:2021-08-22 18:33:24 Python

从应用程序代码内部使用 Alembic API

我正在使用 SQLite 作为应用程序文件格式(请参阅此处了解您为什么要这样做)为我的基于 PySide 的桌面应用程序.也就是说,当用户使用我的应用程序时,他们的数据保存在他们机器上的单个数据库文件中.我正在使用 SQLAlchemy ORM 与数据库进行通信. 当我发布应用程序的新版本时,我可能会修改数据库架构.我不希望用户每次更改架构时都必须丢弃他们的数据,因此我需要将他们的数据库迁移 ..
发布时间:2021-08-22 18:31:41 数据库

Python - 使用 Setuptools 打包 Alembic 迁移

在 Setuptools setup.py 文件中打包 Alembic 迁移文件的正确方法是什么?一切都以 alembic/ 的形式存在于我的仓库根目录中. 这是一个 Python 应用程序,而不是一个库. 我想要的安装流程是有人可以pip install我的应用程序的轮子.然后,他们将能够通过运行诸如 之类的东西来初始化应用程序数据库.alembic 升级 --sqlalchemy. ..
发布时间:2021-07-23 19:39:27 Python