问题标签 [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.
sqlalchemy - Flask-Migrate sqlalchemy.exc.NoReferencedTableError:与列关联的外键
我在我的应用程序中使用 Flask-Migrate,具有以下模型:
列表拉/模型.py
运行.py
listpull/__init__.py
我使用初始化数据库./run.py db init
,然后运行./run.py db migrate
,我收到以下错误:
我在这里做错了什么?
python - Flask-Migrate 不创建表
我在文件中有以下模型listpull/models.py
:
我打电话./run.py init
then ./run.py migrate
,./run.py upgrade
我看到生成的迁移文件,但它是空的:
运行.py
listpull/__init__.py
更新
如果我通过运行 shell ./run.py shell
,然后执行from listpull import *
并调用db.create_all()
,我会得到架构:
不幸的是,迁移仍然不起作用。
python - 在烧瓶迁移或 alembic 迁移中创建种子数据
如何在第一次迁移中插入一些种子数据?如果迁移不是最好的地方,那么最好的做法是什么?
python - 无法完成 Flask 迁移
我已经使用 SQLAlchemy 设置了一个本地 Postgres 数据库,并且无法提交我的第一个条目。我不断收到此错误...
似乎这些字段与数据库中的字段不匹配。我正在尝试使用 flask-migrate 进行迁移,但是当我运行时出现$ python app.py db migrate
此错误...
最好删除所有内容并从头开始,因为我似乎搞砸了我的数据库设置和/或迁移,但我不知道该怎么做。
更新:数据库现在已经开始工作(我删除并再次创建它)。但是,我在尝试运行迁移时仍然遇到同样的错误,事实证明“没有这样的修订版 '39408d6b248d' 是指从不相关的项目迁移。我重新安装了 flask-migrate 但同样的错误。
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 之间存在明显差异之外,我无法弄清楚发生了什么或应该如何调试。谢谢。
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()下方,它现在可以正确检测到更改。感谢所有的帮助!
python - 在 heroku 上运行 flask-migrate 会产生错误
我正在尝试使用 flask-migrate 在本地对我的数据库进行版本控制,然后反映生产中的更改(Heroku)。到目前为止,我成功地对本地数据库进行了版本控制并对其进行了升级,所以现在我想在 Heroku 上反映这一点。为此,我将最新的代码状态连同新创建的迁移文件夹和更新的 requirements.txt 一起推送到 Heroku。我看到依赖项已成功安装:
然后,我尝试了:
不幸的是,我得到了这个回应:
我用谷歌搜索这可能是什么,看起来配置文件无法打开,但是我不知道可以做些什么来解决这个问题。为什么这在本地有效,但在 Heroku 上无效?
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
openshift - openshift上的烧瓶迁移
我正在使用烧瓶。我安装了 Flask-migrate 并一直在使用它来迁移我的 postgresql 数据库。它在我的本地盒子上运行良好。但是,当我在 openshift 上运行它时出现错误
任何人都知道这是什么或如何解决它?
python - Flask-Migrate:显然未检测到列添加/删除,而是重新创建表
我在带有 Postgresql 后端的 Flask 应用程序中使用 Flask-Migrate。问题是,在对我的模型进行更改后,比如添加或删除列,在我尝试过的任何修订或迁移中,我总是得到以下结果
并且其中的每个脚本都migrations/versions
包含用于创建表的代码,例如
我期待类似的东西
和
我正在按照此博客中的说明进行操作。相关设置如下:
我遵循了这些问题中给出的一些建议:(Alembic/Flask-migrate 无法识别数据库结构)和(在使用 Flask-SQLAlchemy 进行迁移的 Alembic 自动生成中未检测到任何变化),但没有任何运气。
知道我做错了什么吗?
提前致谢。
解决了
我刚刚发现了问题。我喜欢使用数据库模式,我正在这样做
似乎alembic
不知何故不知道模式的固有范围,因此它一直在重新创建表。有点:没有表foo
- 在最外面的全局“模式”或范围内 - 所以我必须到create
那个表。即使在第一次迁移正确创建表之后,这种情况也会发生。当然,不出所料地执行了第二次迁移
我刚刚放弃了上面的声明,现在我看到了正确的变化。
我不知道我是否必须做一些特别的事情来支持计划。也许这只是一个不受支持的功能。