问题标签 [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.
python - 运行迁移时检测到表,但未在数据库中创建表
我运行了一个迁移来为一个cookiecutter Flask 应用程序创建 SQLite 表。虽然数据库文件存在并且我可以打开它,但我看不到表。当我尝试创建用户时,我收到“没有这样的表”错误。即使我运行了迁移,为什么表不存在?我怎样才能使用这些表?
sqlalchemy - 如何将 flask-migrate 与其他 declarative_bases 一起使用
我正在尝试在 Flask 中实现 python-social-auth。我在尝试同时解释大约 4 个教程和一本完整的 Flask-book 的同时解决了很多问题,并且觉得我在 Flask-migrate 方面陷入了僵局。
我目前正在使用以下代码来创建 python-social-auth 在 flask-sqlalchemy 环境中运行所需的表。
现在,他们显然在使用某种形式的自己的 Base,与我的实际 db-object 无关。这反过来会导致 Flask-Migrate 完全错过这些表并在迁移中删除它们。现在,显然我可以从每次删除中删除这些 db-drop,但我可以想象它是那些在某一时刻会被遗忘的事情之一,突然之间我不再有 OAuth 关系了。
正如python-social-auth Flask 示例所建议的那样,我已经得到了这个解决方案来使用(和修改)manage.py-command syncdb
Flask-Migrate 的作者 Miguel Grinberg 在这里回复了一个似乎与我非常相似的问题。
我能找到的最接近堆栈溢出的是this,但它对我来说并没有对整个事情有太多启示,而且答案从未被接受(而且我无法让它工作,我尝试了几次)
作为参考,这是我的 manage.py:
澄清一下,db init / migrate / upgrade 命令只创建我的用户表(显然还有迁移表),而不是社交身份验证表,而 syncdb 命令适用于 python-social-auth 表。
我从 github 响应中了解到 Flask-Migrate 不支持此功能,但我想知道是否有办法在 PSABase-tables 中摆弄,以便它们被发送到 Migrate 的 db-object 拾取。
欢迎任何建议。
(另外,第一次发帖。我觉得我已经做了很多研究并尝试了很多解决方案,然后才终于来到这里发布。如果我错过了 SO 指南中明显的内容,请不要犹豫在私信中向我指出这一点,我很乐意效劳)
flask-migrate - flask-migrate 无法识别升级已完成
我运行 a db migrate
then adb upgrade
但升级失败,因为其中一个命令失败。(在运行之前我没有阅读迁移。)
我最终处于db history
识别升级已运行的状态,但db current
仍将先前的升级列为 HEAD。
db downgrade
我当时试过db upgrade
了,但没有奏效。
如何更正此问题以便继续运行迁移?
python - 烧瓶迁移:alembic.util.CommandError:没有这样的修订
我已经安装了 Flask-Migration 并初始化了迁移,但是当我运行时我会收到以下错误python3 manage.py db migrate
。
正如无法完成 Flask-Migration中所建议的,可能的原因是我进行了升级,生成了上述修订版“38340accc10”,但随后删除了整个迁移/目录并删除了所有升级脚本。
如何删除数据库中的 Alembic 版本?我尝试使用 重新创建数据库,db.drop_all()
但db.create_all()
出现相同的错误。
python - How to sync db with Flask-Migrate in a fresh application deployment?
When deploying an application to a fresh server (i.e. the database is empty) how do I sync the database properly with Flask-Migrate?
I've added Flask-Migrate to the project when I already had some schema in place so I don't have "initial" migrations with all create_table()
. Now when I do manage.py db upgrade
in my deployment script I get relation "..." does not exist
.
Is there any built-in way to detect empty database and run 'create_all()' instead of migrations? This is what the Alembic's Cookbook suggests. Since I'm using Flask-Migrate already I'm looking for some unified way of dealing with migrations.
python - 如何跨多个开发环境使用 Flask-migrate
我有烧瓶迁移(版本 1.8.0)在开发环境中与 sqlite 数据库配合良好。现在我想将我们的数据迁移到 MySQL 并维护我们所有的迁移历史(因此它与我们的 git 存储库中的 Flask-SQLAlchemy 模型保持同步)。
我创建了一个空的 MySQL 数据库,在更改了我的 SQLALCHEMY_DATABASE_URI 之后,我尝试运行:
这导致无法删除表 migrate_version 的错误。(这是有道理的,因为这是一个新数据库,尽管 sqlite 实际上包含表 'alembic_version' 而不是 'migrate_version'。)
所以,我尝试初始化这个新数据库:
现在我收到一个错误:“目录迁移已经存在”。
我可以重命名该文件夹并毫无问题地重新运行该命令,但随后我丢失了所有以前的迁移。我认为当我们也过渡到我们的测试和生产环境时,我们也会遇到同样的问题。
我在文档中看到 Flask-Migrate 有多个数据库支持,但我认为这看起来更适合在单个开发环境中维护多个数据库。有没有办法让 Flask-Migrate 跨多个开发环境跟踪更改?
python - Flask-migrate 不在 Heroku 中创建数据库
问题:
我无法让我的 SQLite 数据库在 Heroku 上工作。当我尝试在浏览器中访问应用程序的 URL 时,出现内部服务器错误。heroku logs
显示了这一点:
我试过的:
我可以通过删除我的本地数据库在本地重现此错误(其中还没有任何重要内容):
我可以使用 Flask-Migrate 的upgrade
命令在本地修复它:
但是,当我尝试通过做同样的事情在 Heroku 上修复它时,它不起作用:
我也尝试过手动删除和创建表:
我很困惑该怎么做。看起来 Flask-Migrate 出于某种原因没有创建数据库文件。我试过open('textfile.txt', 'w')
了manage.py
,它成功地创建了文件。
python - 烧瓶迁移:无法升级数据库,因为“表不存在”
我正在使用带有 postgres 数据库的 sqlalchemy 开发烧瓶应用程序。我正在使用烧瓶迁移迁移我的数据库。我不得不更改数据库中一个表的名称,并且在尝试迁移(flask-migrate)时出现错误
我不知道如何告诉flask-migrate 这个问题,所以我想出了手动完成的好主意,所以我去了 psql 并按照错误消息的建议将表与 CASCADE 命令一起删除。一切正常,但现在我无法完成迁移?运行升级时我得到
这可能是因为我刚刚手动删除了表格?有谁知道我怎样才能摆脱这个烂摊子?谢谢卡尔
flask - Alembic/Flask-Migrate 未检测到 after_create 事件
我有一个简单的 Flask-SQLAlchemy 模型(带有事件监听器来创建触发器):
当我运行 Alembic 迁移和升级时,未创建 TRIGGER(在 MySQL 中)。但是,当我使用 db.create_all() 时,它会被创建并正常工作。
是否可以让 Alembic / Flask-Migrate 创建和管理我的触发器(即在 after_create 事件上运行的自定义 DDL)?
mysql - MySQL 的“SET foreign_key_checks = 0”的 SQLAlchemy 配置
我正在使用带有 Flask 的 SQLAlchemy 创建数据库表 - 每个表至少有一个外键 - 它适用于 sqlite 但不适用于 MySQL - 在 MySQL 中创建表时出现外键完整性错误(创建时未创建父表子表)。我使用“SET foreign_key_checks = 0”来解决问题,但这不适用于 sqlite。有没有办法配置 SQLAlchemy 忽略外键检查?