问题标签 [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 投票
2 回答
9337 浏览

python - 在alembic中向现有MySQL表添加主键

我正在尝试使用 alembic 将“id”主键列添加到已经存在的 MySQL 表中。我尝试了以下...

但出现以下错误

看起来alembic生成的sql语句没有PRIMARY KEY在alter语句的末尾添加。我可能错过了一些设置吗?

提前致谢!

0 投票
2 回答
1932 浏览

git - 我是否应该将通过 alembic 生成的数据库迁移脚本置于版本控制之下

我在我的实时站点上使用 SQLAlchemy 和 PostgreSQL。对于数据库迁移,我使用的是 alembic。我对执行此操作的最佳策略有一些疑问。

  1. 我是否需要将我的数据库迁移脚本置于版本控制之下?

  2. 我使用 Fabric 进行自动化部署。我应该手动运行迁移脚本还是让它自动化?

0 投票
1 回答
742 浏览

python - alembic:在迁移中使用子查询进行更新语句

我正在使用 alembic 来管理我的数据库迁移。在我当前的迁移中,我还需要根据 SELECT 语句填充一列(基本上是从不同的表中复制一列)。

使用简单的 SQL,我可以做到:

但是无法弄清楚如何用 alembic 做到这一点:

我尝试对'???'使用普通的 SQLAlchemy 表达式:

但这只会在执行期间产生错误的 SQL 和 ProgrammingError:

0 投票
2 回答
5680 浏览

python - 从不同子文件夹的子文件夹中相对导入python模块

我正在尝试使用 alembic,它是 python 中的一个 sqlalchemy 工具。您键入一个命令,它会生成一个文件夹“alembic”,其中包含 py 文件。里面的 py 文件需要在一个名为“myapp”的单独文件夹中链接到我的应用程序。但我无法链接它。它说它不存在并且相对导入不起作用。

所以我需要从myapp/configs/config.py文件中导入我的配置类。

在 env.py 中:

不工作。

我试过:

没有成功。

alembic 文档中的示例代码说只使用“myapp.whatever”。

我什至在环境变量中将“/apps”和“/myapp”添加到 PYTHON_PATH 中。

示例错误:

0 投票
1 回答
879 浏览

python - 在 Flask 应用程序中使用 Alembic 和 Flask-SQLAlchemy 检测对 models.py 的更改

我正在尝试将 Alembic 与 Flask-SQLAlchemy 和 Flask 一起使用。这是我的应用程序目录结构

我在models.py 中有几个类。我想要的是一种方法,使 alembic 可以检查更改(如 models.py 中的任何新添加的类)并生成版本文件(在运行命令时),以便它反映在 upgrade() 函数中。

我如何做到这一点?我相信这应该是可能的,但不知道如何做到这一点!

PS:如果您需要任何额外的信息,请告诉我。

0 投票
14 回答
42459 浏览

python - 使用 Alembic 更改枚举字段

当使用早于 9.1 的 PostgreSQL 版本(为枚举添加 ALTER TYPE)时,如何在 alembic 迁移中将元素添加到 Enum 字段?这个SO question 解释了直接过程,但我不太确定如何最好地使用 alembic 翻译它。

这就是我所拥有的:

不幸的是,上述内容仅ALTER TABLE testcaseresult ALTER COLUMN status TYPE status在升级时产生,基本上什么都不做。

0 投票
1 回答
7928 浏览

sqlalchemy - 将 Alembic 与 SQLAlchemy 集成

我正在寻找一种将 Alembic 与 SQLAlchemy 集成的方法。我需要一种方法,以便 Alembicmodels.py自动检测我所做的任何更改,并在我运行时在 MySQL 数据库中更新它alembic revision -m "<message_here>"alembic upgrade head.

这是我目前所拥有的。

这是我的应用程序目录结构。

models.py包含以下内容。

我已经alembic.ini用我的数据库凭据配置了我的sqlalchemy.url

我有以下内容env.py

但是当运行迁移时使用

它说

但是当我打开migrations/versions/9aa5864e4c8_initial.py,这是我看到的。

版本文件没有关于我期望它创建并稍后在我运行命令时与 MySQL 同步的表alembic upgrade head。如何配置 Alembic,以便在我运行alembic revision命令时,它从中选择架构models.py并生成版本文件?我想我在这里遗漏了一些微不足道的东西。不知道是什么!

0 投票
1 回答
2976 浏览

python - alembic 并获取最后插入的值

我正在使用 alembic 来管理我的数据库结构。

使用 id 作为整数和主键添加表后,id 列将是一个自动增量列。如何查询升级脚本中的数据,以便确定我得到正确的 id(我知道在这种特定情况下它是 1)?

我知道怎么做

我知道我可以进行更新,但是如何使用类似下面的内容进行选择?

0 投票
4 回答
18169 浏览

python - Alembic:alembic 修订版显示导入错误

我正在尝试将我的Flask项目与Alembic
我的应用程序结构集成看起来像

当我尝试从我的db目录运行以下内容时,我看到

我尝试了Request a simple alembic working example for Auto Generating Migrations中提到的解决方案,但它对我不起作用

env.py run_migrations_online()改变的方法是

我怎样才能解决这个问题?

0 投票
11 回答
84047 浏览

python - sqlalchemy.exc.ArgumentError:无法加载插件:sqlalchemy.dialects:驱动程序

我正在尝试运行alembic迁移,当我运行时

它失败了

数据库网址是

我什至已经psycopg2安装在我的 virtualenv 中

为什么会导致这个问题?