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

alembic - 如果您没有开始使用 alembic/flask-migrate 迁移现有数据库,如何添加它?

这是已经发生和正在发生的事件链

  • 第 0 天:我开发并部署了我的应用程序
  • 第 1 天:我创建新数据库
  • 第 3 天:我意识到我想在现有表中添加一个新行。我找到了flask-migrate,我想用它来迁移我的数据库。

目前我在第 3 天

如果您从第 0 天开始,有很多关于如何让 Flask-migrate 运行的文档。您只需调用flask db init,flask db migrateflask db upgrade.

但是,就我而言,它有点不同。我运行了命令,我的第一个迁移版本是empty。然后我修改了我的数据库模式并生成了一个新的迁移。现在我最新的迁移只有 1 行迁移,它将新行添加到表中。

我意识到我的所有迁移都没有创建数据库的实际架构,如果您在第 1 天开始烧瓶迁移,这应该是您看到的第一个迁移。

如果我要从头开始克隆我的仓库:

flask db migrate将导致alembic.util.exc.CommandError: Target database is not up to date..

flask db upgrade将导致sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "offer" does not exist.

我能做些什么来解决这个问题?

0 投票
0 回答
84 浏览

python - python烧瓶迁移寻找不正确版本的mysqlclient库

我正在尝试使用“flask-migrate”迁移 SQL 数据库。但是,在初始化数据库后,我运行flask db migrate导致以下结果:

但是,该目录中有该库的更高版本:libmysqlclient.20.dylib.

我不确定这是什么根本原因,所以不确定如何解决。

我在 virtualenvwrapper 中有我的依赖项,并且正在使用:

  • Flask-SQLAlchemy
  • MySQL-python
  • SQL炼金术
0 投票
1 回答
963 浏览

python - 烧瓶迁移不检测列自动增量更改?

我已经将我的模型类从 autoincrement=False 更改为 autoincrement=True 但是 Flask Migrate 包没有检测到更改以应用于数据库?我怎样才能解决这个问题?

迁移命令日志:

0 投票
0 回答
83 浏览

python-2.7 - Flask db migrate 停止在新的 ec2 机器上工作

所以这有点奇怪。我拍摄了我的开发服务器 (ec2) 的图像,将它放到一台新机器上,突然“flask db migrate”停止为我工作。它现在返回此错误:

我不太确定如何进行调试。一点指导将不胜感激。

0 投票
1 回答
1469 浏览

python - 如何在脚本中调用flask migrate api

我有一个数据库db。我想判断是否flask_migratedb. 如果没有,upgrade db. 在 python 脚本中有命令,但没有关于调用的示例migrateupgrade中的测试文件flask_migrate还运行命令:

0 投票
0 回答
866 浏览

python-3.x - Flask-Migrate 是否处理手动定义的序列?

我正在构建一个 flask-sqlalchemy 数据模型,并成功创建了表并将数据添加到数据库中的表中。我最近决定在应用程序中包含 Flask-Migrate,以便我可以方便地跟踪更改。

使用 Flask-Migrate 和 Flask-Script Manager 我成功地使用

并能够使用创建迁移

但似乎 Flask-Migrate 不知道如何处理手动声明的序列,因为当我运行时

我被一个

seq_inbox是我手动声明的序列的名称。

检查迁移/版本目录中创建的迁移后,我看到了这个

在我看来,Alembic 将我的序列名称解释为纯文本,这是正确的吗?

如何解决此“关系不存在”错误?

编辑 1 当我删除序列声明并重置所​​有内容时,我能够顺利运行升级命令。但我希望我的命名序列存在。

编辑 2 这是运行后的错误python models.py db upgrade

编辑 3 这是收件箱模型本身

0 投票
4 回答
3617 浏览

python - Flask-Migrate 挂起表修改

我在使用 Flask-Migrate 运行升级命令时遇到问题。最初我试图一次修改三个表并且它挂起,我将其缩小到一个特定的表(其他升级没有问题)。我没有看到数据库上有任何锁。我正在使用 Postgres,目前只是在开发环境中工作。migrate 命令似乎工作正常并生成upgrade没有任何问题的方法(参见代码)

一旦我运行升级命令,我就会卡在这里:

带有闪烁的光标。当我退出命令窗口(我正在使用 Windows)时,没有应用任何更改。

我试过了

  • 重新启动计算机
  • 使用 pgAdmin 寻找锁或其他会话
  • 修改其他表,能够添加和删除列
0 投票
1 回答
4594 浏览

python - Flask-SQLAlchemy 如何在 MySQL(InnoDB)中使用级联进行约束外键?

我一直在寻找在 SQLAlchemy 中使用 PyMySQL 驱动程序和 MariaDB 10.0 在数据库中使用 InnoDB 的以下 UsersAccessMapping 模型中实现 DELETE CASCADE 上的约束外键的方法。

SQL:

models.py现在拥有的:

table_args语法有问题,但我找不到任何关于它应该如何的示例。我找到了一个非常相似的,但第三个参数是一个空字典。但是,我想使用 ondelete="CASCADE"。那怎么加呢?

运行时python3 manage.py db init,它会抛出这个:

我尝试更改ondelete="cascade"为 dict {"ondelete": "cascade"},但这也不起作用。它给出了与上面相同的错误。

更新: 问题是 ondelete 应该在元组之外,如下所示:

但是,随着这种变化,仍然存在语法错误,正如ondelete="CASCADE"未定义的那样。将其更改为 dict{"ondelete": "cascade"}会引发以下问题:

0 投票
0 回答
596 浏览

python - 将 Flask-APScheduler 与 flask-migrate 和 flask 脚本集成

我不清楚如何在同一个数据库上集成我的模型、使用烧瓶脚本和计划作业。Flask-apscheduler 似乎在幕后进行了一些工作,它会为您创建数据库。

当我运行python manage.py db init它将创建一个带有 apscheduled_jobs 表的数据库。现在,如果我运行,python manage.py db migrate我会收到错误消息:

其次是:

我的项目布局类似于:

在此处输入图像描述

intel\_init__.py看起来像:

manage.py

编辑:我schedule.start()从模块移到intel\_init__.pyrun.py,它只会工作一次,因为我停止了应用程序,然后再次重新启动应用程序,我得到了与上面相同的错误。

0 投票
1 回答
6453 浏览

python - Heroku 上的 Flask 数据库迁移

在我的应用程序中,我使用 flask-script 和 flask-migrate 进行数据库迁移,一切都在本地工作。什么时候,我跑

它创建此输出:

但是当我运行时heroku run python manage.py db migrate出现错误

当我运行heroku run bash并查看我的目录时,我可以看到没有migrations文件夹......

我试过运行给出命令--app fpds-scheduler,但这似乎也不起作用。

我不确定出了什么问题?