问题标签 [sqlalchemy-migrate]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 向现有的 sqlalchemy 类添加一列
我有一个生成唯一 id 的父类和一个具有用户名的子类。
我想在名称(姓氏)中添加一列。我怎么能用 sqlalchemy-migrate 做到这一点?有什么例子会有所帮助吗?
flask - Alembic 几个模块到单个数据库,具有特定的文件迁移
我们需要构建一个拆分为多个模块的大型应用程序。每个模块都有自己的alembic版本表,并且在每个模块中我们都生成了alembic迁移,但是当我生成迁移文件时,其中会生成所有数据库表的drop,我无法指定每个迁移的上下文。
我想要做的是在每个模块中,我只想生成关于这个模块内模型的迁移脚本而不是其他模块?
我不知道我是否必须为每个模块使用一个模式来解决这个问题?
python - AttributeError:“Column”对象和“Comparator”对象都没有属性“alter”
我正在开发一个项目,该项目既有旧的基于sqlalchemy-migrate的迁移,也有新的基于alembic的迁移。我正在尝试删除前者。撕掉它很容易,但是当我这样做后运行一些测试时,我看到了以下失败:
但是,我注意到当我将migrate
(sqlalchemy-migrate)模块的导入重新添加到任何剩余的alembic
迁移中时,事情又开始工作了吗?为什么alter
没有这个模块该方法会消失?
python - 更改数据库架构后,SQLAlchemy 对象无法识别新列
我有一个本地数据库设置,我使用 SQLAlchemy 对象创建对象关系映射。
一切都很好,直到我更改了数据库的架构 - 包括向其中一个表添加一个新列。现在我不断看到:
sqlalchemy.exc.NoReferencedColumnError:无法初始化表 'ModelPrice' 上的 ForeignKey 'ModelFit.id' 的目标列:表 'ModelFit' 没有名为 'id' 的列
其中 'id' 是 ModelFit 表的“Id”列的 SQLALchemy Column 对象。
新数据库上的直接 SQL 查询执行良好,唯一的问题是初始化此映射。
我从某人那里看到了一个类似的问题,他们说他们通过“从项目中删除 .db 文件并再次运行它”来解决这个问题,但我没有任何这样的文件。我什至不使用烧瓶或任何东西来创建数据库,而是使用 SQL 在本地数据库中直接完成的。
关于这里发生的事情的任何帮助或见解?或者更多信息会有所帮助吗?
python - SQLAlchemy Alembic:SQLServer 的 URL 问题
我试图用 Alembic 为我的 SQLServer 数据库创建一个数据库迁移脚本,但连接字符串有问题。
这就是我现在所拥有的:
期间的错误消息alembic current
:
sqlalchemy.exc.ArgumentError: Could not parse rfc1738 URL from string '"mssql+pyodbc://dbserverxx/dbxx?trusted_connection=yes&driver=ODBC Driver 17 for SQL Server"'
我用 SQLite 测试了我的脚本并且工作正常。
我用的是Mac,内容odbcinst.ini
如下:
我能够使用 PyODBC 连接到数据库并执行原始 SQL。
任何拥有权利sqlalchemy.url
的建议表示赞赏。
python-3.x - 使用 sqlalchemy 和烧瓶迁移的 Postgresql 分区管理
我正在开发一个多租户系统,任何数量的租户都可以注册系统并管理他们的数据。每当租户注册时,都会创建一个新的表分区,其分区名称以他的 id 结尾,他将管理 company_id 等于他的租户 id 的数据。还有一些不需要分区的所有租户都通用的表。/create/company
使用以下代码在路由中完成分区创建
这可以很好地为每个租户创建新分区。但是当我执行flask db migrate
andflask db upgrade
时,租户注册时创建的那些分区被检测为已删除的表,import_data_1
因为.import_data_2
application/models.py
所以我试图在 中创建分区以及分区表application/models.py
,以便它们也被检测到。我正在使用这个问题中提到的 mixin 类和元类来完成它。
在我的application/__init__.py
, 以前的
现在变成
application/models.py
这是我需要按company_id
字段分区的表的示例
将使用 mixins 和元类重写
现在我正在尝试为import_data
表添加 2 个分区
我给flask db migrate
了flask db upgrade
一个新的数据库。但它不起作用;创建的架构是
import_data_2 也是如此。
此外,我还有其他未定义类的表,例如
为了为这些表创建分区,我尝试过
但它不会创建任何表。
所以我的问题是
- 如何正确对表进行分区,以便不使用 flask db migrate 和 upgrade 命令删除分区?这种方式甚至可能吗?每次我重新启动服务器时,分区代码都会运行吗?还有其他方法吗?
- 如何为没有类定义的表添加分区?
任何帮助表示赞赏。谢谢
python - alembic autogenerates 创建空迁移但生成表
我按照 Alembic 的文档自动生成迁移。我的项目结构如下所示:
我完全按照文档进行了更改env.py
:
这是我的__init__.py
:
我像这样创建了一个用户类models.py
:
之后,我通过以下方式运行迁移:
但是,我在迁移文件中得到了空的 upgrade() 和 downgrade() :
但是当我检查数据库时,用户表是在那里创建的(我自己没有做)。这是怎么发生的?alembic 是如何创建空迁移但生成表的?
python - 破坏了我的 Flask-sqlalchemy sqlite db 实例
在测试我的 Flask 应用程序功能时,我在升级/降级期间通过编辑我的模型以某种方式破坏了我的数据库。我为此目的使用 Migrate,但我对它相当陌生。这导致了我的问题:如何完全重置我的数据库(迁移修订版)。在发生这种情况之前,我只会降级到初始化状态并从 Migrate/versions 文件夹中手动删除所有 python 文件。
python - 在 Alebmic 中重命名 ENUM 标签
我在 PostgreSQL 中使用 SQLAlchemy 和 Alembic,我需要将我的一个模型上的枚举标签之一更改为其他内容。我在 raw PostgreSQL中找到了一个非常有用的线程,但我不确定如何在 alembic 中完成相同的目标,而不仅仅是使用一堆op.exec()
命令。如果您还可以展示如何向枚举添加新值,则可以加分。