问题标签 [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.

0 投票
3 回答
14754 浏览

sqlalchemy - Flask-Migrate sqlalchemy.exc.NoReferencedTableError:与列关联的外键

我在我的应用程序中使用 Flask-Migrate,具有以下模型:

列表拉/模型.py

运行.py

listpull/__init__.py

我使用初始化数据库./run.py db init,然后运行./run.py db migrate,我收到以下错误:

我在这里做错了什么?

0 投票
6 回答
37551 浏览

python - Flask-Migrate 不创建表

我在文件中有以下模型listpull/models.py

我打电话./run.py initthen ./run.py migrate./run.py upgrade我看到生成的迁移文件,但它是空的:

运行.py

listpull/__init__.py

更新

如果我通过运行 shell ./run.py shell,然后执行from listpull import *并调用db.create_all(),我会得到架构:

不幸的是,迁移仍然不起作用。

0 投票
5 回答
38336 浏览

python - 在烧瓶迁移或 alembic 迁移中创建种子数据

如何在第一次迁移中插入一些种子数据?如果迁移不是最好的地方,那么最好的做法是什么?

0 投票
8 回答
19849 浏览

python - 无法完成 Flask 迁移

我已经使用 SQLAlchemy 设置了一个本地 Postgres 数据库,并且无法提交我的第一个条目。我不断收到此错误...

似乎这些字段与数据库中的字段不匹配。我正在尝试使用 flask-migrate 进行迁移,但是当我运行时出现$ python app.py db migrate此错误...

最好删除所有内容并从头开始,因为我似乎搞砸了我的数据库设置和/或迁移,但我不知道该怎么做。

更新:数据库现在已经开始工作(我删除并再次创建它)。但是,我在尝试运行迁移时仍然遇到同样的错误,事实证明“没有这样的修订版 '39408d6b248d' 是指从不相关的项目迁移。我重新安装了 flask-migrate 但同样的错误。

0 投票
1 回答
2453 浏览

postgresql - Heroku 上的 Alembic / Flask-migrate 迁移运行但不创建表

我正在尝试将 Flask 应用程序部署到 Heroku。我已经推送到 Heroku 并且可以访问我的登录页面,但是对 db 的任何调用都会给出 OperationalError:

使用 Flask-migrate 我可以成功运行本地迁移和升级:

当我尝试使用升级在 Herokuheroku run python manage.py db upgrade上升级时,似乎发生了,但是 Context impl. 现在是 SQLite?:

运行Heroku pg:info给出:

Heroku 升级的相关日志为:

另外,heroku config给我:

上下文实现如何。放?除了在本地工作和 heroku 之间存在明显差异之外,我无法弄清楚发生了什么或应该如何调试。谢谢。

0 投票
1 回答
1601 浏览

python - Alembic/Flask-migrate 无法识别数据库结构

我有一个基于 Flask 的应用程序,我正在尝试使迁移能够管理数据库结构更改。在我开始使用 alembic 和 flask-migrate 之前,我的数据库不是空的,并且包含表和记录。

首先,我尝试单独使用 alembic,只需pip install alembic然后配置所有内容并使用autogenerate生成差异。一切正常,但输出并不完全符合我的预期:

所以表用户实际上存在于我的数据库中(我认为它是 postgresql 中的保留表)并且我从未删除它。另外,我还有一堆其他的表,这些表似乎对 alembic 是不可见的。起初我以为我没有正确配置 alembic,所以我重新开始并决定尝试Miguel Grinberg 的这个不错的烧瓶扩展。这更容易设置,但结果是完全相同的消息。

任何想法我做错了什么?

编辑:我决定添加一些关于我如何编辑原始 alembic env.py 的重要信息:

在任何迁移开始之前,alembic 必须进行这些更改才能查看我的声明性基础和模型。放弃独立方法后,我只是按照烧瓶迁移教程进行操作,并没有触及那里的任何文件。

编辑:好的,所以我们已经解释了已删除的“用户”表。尽管如此,我的其他模型并没有出现在脚本中。我认为会发生什么,因为在创建迁移脚本之前启动了应用程序,sqlalechmy db.create_all()调用创建了表,这就是为什么 alembic 在列与模型中没有看到任何差异的原因。也许我在错误的地方调用create_all() ?

编辑:是的!就是这样,我将db.create_all() 移到 manager.run()下方,它现在可以正确检测到更改。感谢所有的帮助!

0 投票
4 回答
4153 浏览

python - 在 heroku 上运行 flask-migrate 会产生错误

我正在尝试使用 flask-migrate 在本地对我的数据库进行版本控制,然后反映生产中的更改(Heroku)。到目前为止,我成功地对本地数据库进行了版本控制并对其进行了升级,所以现在我想在 Heroku 上反映这一点。为此,我将最新的代码状态连同新创建的迁移文件夹和更新的 requirements.txt 一起推送到 Heroku。我看到依赖项已成功安装:

然后,我尝试了:

不幸的是,我得到了这个回应:

我用谷歌搜索这可能是什么,看起来配置文件无法打开,但是我不知道可以做些什么来解决这个问题。为什么这在本地有效,但在 Heroku 上无效?

0 投票
7 回答
19564 浏览

python - Flask - ImportError: No module named migrate.versioning

I'm working through a flask tutorial and am trying to run a script that creates a database instead of doing it through the command line. It uses the SQLAlchemy-migrate package, but when I try to run the script, it gives an ImportError.

This is the terminal output:

This is the db_create.py script:

This is the config file it references:

This application is being run with a virtual environment. This are the module that relates to it that I have installed in the environment:

sqlalchemy_migrate-0.7.2-py2.7.egg-info

Any help appreciated

0 投票
2 回答
1314 浏览

openshift - openshift上的烧瓶迁移

我正在使用烧瓶。我安装了 Flask-migrate 并一直在使用它来迁移我的 postgresql 数据库。它在我的本地盒子上运行良好。但是,当我在 openshift 上运行它时出现错误

任何人都知道这是什么或如何解决它?

0 投票
0 回答
2220 浏览

python - Flask-Migrate:显然未检测到列添加/删除,而是重新创建表

我在带有 Postgresql 后端的 Flask 应用程序中使用 Flask-Migrate。问题是,在对我的模型进行更改后,比如添加或删除列,在我尝试过的任何修订或迁移中,我总是得到以下结果

并且其中的每个脚本都migrations/versions包含用于创建表的代码,例如

我期待类似的东西

我正在按照此博客中的说明进行操作。相关设置如下:

我遵循了这些问题中给出的一些建议:(Alembic/Flask-migrate 无法识别数据库结构)和(在使用 Flask-SQLAlchemy 进行迁移的 Alembic 自动生成中未检测到任何变化),但没有任何运气。

知道我做错了什么吗?

提前致谢。

解决了

我刚刚发现了问题。我喜欢使用数据库模式,我正在这样做

似乎alembic不知何故不知道模式的固有范围,因此它一直在重新创建表。有点:没有表foo- 在最外面的全局“模式”或范围内 - 所以我必须到create那个表。即使在第一次迁移正确创建表之后,这种情况也会发生。当然,不出所料地执行了第二次迁移

我刚刚放弃了上面的声明,现在我看到了正确的变化。

我不知道我是否必须做一些特别的事情来支持计划。也许这只是一个不受支持的功能。