问题标签 [alembic]

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.

0 投票
4 回答
32366 浏览

python - Alembic --autogenerate 产生空迁移

我正在尝试Alembic第一次使用并想使用此处--autogenerate描述的功能

我的项目结构看起来像

我正在使用FlaskandSQLAlchemy和他们的Flask-SQLAlchemy扩展。我的模型User看起来像

如此处所述,我修改env.py为看起来像

configuration.__init__py看起来像哪里

现在当我运行迁移时

但文件alembic/versions/55a9d5有空upgrade()downgrade()方法

怎么就看不懂有新User机型了?请帮忙

0 投票
6 回答
7377 浏览

python - Alembic:如何在模型中迁移自定义类型?

我的User模型是

whereGUIDsqlalchemy 文档中描述的自定义类型(完全相同)

现在当我跑

我得到我upgrade()

但是在应用 upgrade -> 期间alembic upgrade head,我看到了

我怎样才能让它GUID在这里与 /custom 类型一起工作?

0 投票
1 回答
1073 浏览

python - python:如何使用内存数据库测试我的数据库模型?

我正在开发一个项目Flask并将SQLAlchemy其用作 ORM
我有一个User模型

  • 我使用Alembic创建了一个迁移脚本。
  • 我选择的数据库PostgreSQL只是为了测试我更喜欢使用的模型SQLite来加快测试速度
  • 当有一些类型 inPostgreSQL而不是 in时,问题就出现了SQLite,在这种情况下UUID
  • 当我运行迁移时sqlite://,它给了我错误

AttributeError:“模块”对象没有属性“GUID”

问题
- 如何保存我的架构GUID并使用 SQLite 运行内存测试?似乎SQLite没有类似的东西
- 当他们的数据库运行时,人们有哪些方法可以更快地运行测试(在内存中)PostgreSQL

0 投票
1 回答
5721 浏览

python - sqlalchemy:alembic 批量插入失败:“str”对象没有属性“_autoincrement_column”

我的模型看起来像

其中GUID是自定义 sqlalchemy 类型我使用alembic --autogenerate选项创建表

和 PostgreSQL 表为

我尝试运行修订版并将数据库更新为

当我运行时alembic upgrade head,我看到错误为

我在这里做错了什么?

0 投票
2 回答
2479 浏览

alembic - alembic/env.py target_metadata = metadata "没有模块名称 al_test.models"

当我使用 alembic 来控制我的项目数据库的版本时,env.py 中的部分代码如下:

当我运行 'alembic revision --autogenerate -m "Added user table"' 时,我收到一个错误:文件 "alembic/env.py",第 18 行,从 al_test.models 导入元数据 ImportError:没有名为 al_test.models 的模块

那么如何解决这个问题呢?谢谢!

0 投票
3 回答
22678 浏览

sqlalchemy - Alembic:如何向现有列添加唯一约束

我有一个表 'test' 有一个没有约束的列 'Name'。我需要给ALTER这个专栏一个UNIQUE约束。我该怎么做?

我应该使用op.alter_column('???')orcreate_unique_constraint('???')吗?不是 create_unique_constraint 用于新列而不是现有列吗?

0 投票
3 回答
4112 浏览

postgresql - 如何让 alembic 在 after_create 上发出自定义 DDL?

我有几个要在创建表后运行的自定义 DDL 语句:

我已经像这样附加它们:

当我这样做时create_all,我得到了我期望的 SQL:

但是当我使用 Alembic 升级时,语句不会出现:

有没有办法让 alembic 触发“after_create”事件?

0 投票
1 回答
381 浏览

python - Alembic 检测到更改,但使用 --autogenerate 生成空迁移

我正在尝试使用--autogenerate标志让 alembic 工作自动生成迁移。

当我跑步时,alembic -n mydbname --autogenerate -m "my message"我得到类似的东西:

但是当我查看生成的迁移文件时,upgrade两者downgrade都简单地说pass.

这是怎么回事?!

0 投票
2 回答
9252 浏览

python - Alembic 可以自动生成列更改吗?

添加/删除列时我可以使用 alembic --autogenerate

但是,当我想将例如“url”列从 200 个字符修改为 2000 个字符时,它不会检测到更改。

如何制作 Alembic(使用 SQLAlchemy)、检测更改并自动生成脚本到我的模型的各种列的“大小”并为 PostgreSQL 创建“alter_column”命令?

编辑:

为什么 alembic 不自动添加:

0 投票
4 回答
12974 浏览

sqlalchemy - 如何在 Alembic 中创建 postgresql 的序列

alembic用来维护我的桌子。同时,我使用声明方式更新我的模型。

这是 alembic 的一张桌子:

模型如下:

您可以看到,我Sequence在 alembic 迁移和声明性模型中都使用了 。

但我注意到,当使用 PostgreSQL (v9.1) 时,alembic 不会创建任何序列,因此模型无法创建实例,因为它们将使用该nextval(<sequence name>)子句。

那么,如何创建我的 alembic 迁移,以便在 postgresql 中真正生成序列?