问题标签 [flask-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.
postgresql - Alembic 没有产生正确的变化
我正在使用Flask-Migrate==2.0.0
. 它没有正确检测到更改。每次我运行python manage db migrate
它都会为所有模型生成一个脚本,尽管它们已在以前的版本中成功添加。我在表中添加了两个新列,迁移修订应该只有这两个新列,而不是所有表都添加到其中。有什么我想念的吗?
编辑 1
这是正在发生的事情。我将 Flask_Migrate 添加到我的项目中。
Flask-Migrate 为模型生成的表以及带有修订的 alembic_version 表
985efbf37786
在这之后,我做了一些改变。我在我的一个表中添加了两个新列并再次运行该命令
它产生了新的修订
934ba2ddbd44
但不是只添加这两个新列,而是包含所有表的脚本以及这两个新列。所以例如在我的第一次修订中,我有这样的东西
第二个修订版也包含完全相同的代码。我不明白为什么它已经生成了。
我用谷歌搜索了一下,我的问题看起来就像这样https://github.com/miguelgrinberg/Flask-Migrate/issues/93但我没有使用 oracle DB。我正在使用 Postgresql。另外我不知道它是否有任何影响,但我没有在默认公共架构中创建我的表,而是创建两个新架构(schema_a 和 schema_b),因为我有很多表(大约 100 个)。所以只是安排他们。
编辑 2
第一个问题似乎已经通过添加解决了
包含模式=真
在 env.py 中。
现在新的迁移并没有尝试再次创建已经存在的表,但它在外键方面存在一些问题。每次我创建一个新版本时,它都会尝试删除已经存在的外键,然后尝试添加它们。日志看起来像这样
我尝试将名称添加到每个外键约束,但这没有任何效果。
python - 使用 SQLAlchemy/Alembic 时如何检查是否有挂起的迁移?
我们正在使用 SQLAlchemy 和 Alembic(以及 Flask-SQLAlchemy 和 Flask-Migrate)。如何检查是否有待处理的迁移?
我试图检查 Alembic 和 Flask-Migrate 的文档,但没有找到答案。
flask - 在多个项目中使用 Alembic 迁移
我有两个使用 Flask-Migrate 和 Alembic 的 Flask 应用程序。
共有三个表,其中一个表在两个 Flask 应用程序之间共享,由shared_models.py
我遇到了共享表被其中一个项目 alembic_version 标记的困难,然后另一个项目抱怨它,尽管shared_models.py
文件相同。
处理这种环境的好策略是什么?
python - Flask-Migrate 命令“flask db init”找不到应用程序文件
首先,我正在关注此处发布的 Python Flask 教程:https ://scotch.io/tutorials/build-a-crud-web-app-with-python-and-flask-part-one 。
一切都很顺利,直到执行的“迁移”部分:
...失败并出现以下错误:
我知道 $FLASK_APP 环境变量已设置,因为此命令执行良好:
任何人都可以建议为什么在运行应用程序时执行得很好,但在尝试创建迁移存储库时却没有?
我可以在该主题的其他地方找到最接近的内容:Flask can't find app file,但在这两种情况下,预先等待python -m
对我来说都不起作用。
python - 如何在 Flask Migration 中定义整数数组以创建新表
我想为我的 Postgresql 数据库使用 Flask 迁移工具创建表。
我写了我的烧瓶模型如下:
我想为 allow_center_list 列使用整数数组。
当我尝试执行“flask db upgrade”命令时(在执行 init 和 migrate 命令之后),我收到如下错误:
请指导我如何在 Flask SQLAlchemy 模型中定义整数数组。
python - SQLAlchemy 迁移不创建表
我正在关注Miguel 的本教程。有一个迁移脚本来创建迁移。db_migrate.py
并用于升级它拥有的数据库db_upgrade.py
。
现在每次我运行db_migrate.py
它都会创建一个包含相同代码的迁移文件:
如果我运行db_upgrade.py
,它只会增加migrate_version
数据库中表中的迁移版本,但不会创建新表。我需要手动编辑迁移文件来创建表吗?
配置:
这是我的models.py
python - 让 Flask-Migrate 忽略映射为 Flask-SQLAlchemy 模型的 SQL 视图
我正在使用 Flask-SQLAlchemy 定义我的模型,然后使用 Flask-Migrate 自动生成迁移脚本以部署到 PostgreSQL 数据库上。我在我的应用程序中使用的数据库上定义了许多 SQL 视图,如下所示。
但是,Flask-Migrate 现在为视图生成一个迁移文件,因为它认为它是一个表。如何正确让 Flask-Migrate / Alembic 在自动生成期间忽略视图?
SQL 视图名称:vw_SampleView
有两列:id
和rowcount
。
这意味着我现在可以进行如下查询:
我尝试按照 http://alembic.zzzcomputing.com/en/latest/cookbook.html上的说明进行操作,并将该info = dict(is_view=True)
部分添加到我的模型中,并将以下位添加到我的env.py
文件中,但不知道从这里去哪里。
flask - 使用 Flask 应用程序打包 Flask-Script 和 Flask-Migrate 实用程序
我有一个使用flask
with的应用程序设计flask-sqlalchemy
。为了在模型更改时控制数据库迁移,我使用flask-migrate
包装 alembic 并在flask-script
管理上下文中使用。
我正在尝试决定如何拆分包分发以实现以下目标
- 主应用程序包的最小依赖项集
- 允许为迁移和部署分发管理脚本和测试数据,可能使用辅助包,具体取决于主应用程序模块
项目结构如下
我的manage.py
看起来像很多以下。这就是我通过将alembic
对象附加到. 这也允许我在与一般烧瓶/应用程序配置相同的配置文件中控制迁移配置(因为配置上下文由管理器和 with 推送)flask-migrate
Migrate
manage.py
Migrate.init_app
应用程序子管理器myapp.database.database_manager
启用这样的命令,例如python manage.py database create/drop/test_data
使用 sqlalchemy 创建表并使用目录中的 test_data 填充表tests/
,但不挂钩任何迁移脚本,并允许我使用应用程序配置上下文python manage.py migration init/revision/migrate/...
执行flask-migrate
/命令。alembic
我正在尝试分发此应用程序以部署在我们的内部服务器上。有两个分发用例,因为它们目前正在使用
安装新服务器
- 安装源分发
- 创建新的配置文件以反映数据库主机等。
- 用于
manage.py -c /path/to/config
创建数据库表database create
- 将 HTTP 服务器指向 wsgi.py
更新现有服务器
- 更新源分布
- 用于使用
manage.py -c /path/to/server/config migration upgrade
当前应用上下文提取数据库 - 服务器继续指向wsgi.py
我想将此分发移动到轮子/包,以便我可以在我们的公司内部网上自动部署,所以我在这里看到的是我想将我的包拆分为myapp
只有 Flask 框架依赖项和 wsgi 入口点的主包其中myapp-manage
包括manage.py
、tests
和migrations
目录。
因此,在完美世界中,应用程序将安装在具有全局配置文件的系统上,并且特定的管理用户将有权访问管理包以执行升级。
现在,我正致力于将分发与setup-app.py
从setup-manage.py
同一源分发中创建两个单独的包分开。有没有更合适的方法来使用烧瓶应用程序打包迁移和管理脚本?我已经翻阅了文档,虽然它很清楚如何打包烧瓶应用程序,但管理脚本和迁移的分发策略不太清楚。
python - Flask-Migrate Alter Table 错误
我一直在为这个错误挠头一段时间,我似乎无法弄清楚出了什么问题。也许你能帮忙?
使用Flask-Migrate我修改了我的模型并尝试相应地迁移数据库。
我遇到的错误似乎在两个特定模型User
和Transaction
.
运行后
我收到此错误:
这是我设置模型的方法,请注意表名覆盖:
我已使用本指南设置具有外键和关系的模型。
我已使用此博客文章来帮助诊断我的问题,但无济于事。你可能知道我错过了什么吗?
提前致谢。
heroku - Flask-migrate 和 Flask-script 为 heroku 设置 Procfile?
我正在使用 flask-migrate 和 flask-script 来初始化数据库并运行迁移。
在大多数情况下,我使用 flask-migrate 网站上的 flask-script 示例并运行类似python manage.py db init
.
我的问题是如何将它添加到我的 procfile 以进行 heroku 部署?