问题标签 [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.
alembic - 如果您没有开始使用 alembic/flask-migrate 迁移现有数据库,如何添加它?
这是已经发生和正在发生的事件链
- 第 0 天:我开发并部署了我的应用程序
- 第 1 天:我创建新数据库
- 第 3 天:我意识到我想在现有表中添加一个新行。我找到了flask-migrate,我想用它来迁移我的数据库。
目前我在第 3 天
如果您从第 0 天开始,有很多关于如何让 Flask-migrate 运行的文档。您只需调用flask db init
,flask db migrate
和flask 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
.
我能做些什么来解决这个问题?
python - python烧瓶迁移寻找不正确版本的mysqlclient库
我正在尝试使用“flask-migrate”迁移 SQL 数据库。但是,在初始化数据库后,我运行flask db migrate
导致以下结果:
但是,该目录中有该库的更高版本:libmysqlclient.20.dylib
.
我不确定这是什么根本原因,所以不确定如何解决。
我在 virtualenvwrapper 中有我的依赖项,并且正在使用:
- Flask-SQLAlchemy
- MySQL-python
- SQL炼金术
python - 烧瓶迁移不检测列自动增量更改?
我已经将我的模型类从 autoincrement=False 更改为 autoincrement=True 但是 Flask Migrate 包没有检测到更改以应用于数据库?我怎样才能解决这个问题?
迁移命令日志:
python-2.7 - Flask db migrate 停止在新的 ec2 机器上工作
所以这有点奇怪。我拍摄了我的开发服务器 (ec2) 的图像,将它放到一台新机器上,突然“flask db migrate”停止为我工作。它现在返回此错误:
我不太确定如何进行调试。一点指导将不胜感激。
python - 如何在脚本中调用flask migrate api
我有一个数据库db
。我想判断是否flask_migrate
在db
. 如果没有,upgrade db
. 在 python 脚本中有命令,但没有关于调用的示例migrate
。upgrade
中的测试文件flask_migrate
还运行命令:
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 这是收件箱模型本身
python - Flask-Migrate 挂起表修改
我在使用 Flask-Migrate 运行升级命令时遇到问题。最初我试图一次修改三个表并且它挂起,我将其缩小到一个特定的表(其他升级没有问题)。我没有看到数据库上有任何锁。我正在使用 Postgres,目前只是在开发环境中工作。migrate 命令似乎工作正常并生成upgrade
没有任何问题的方法(参见代码)
一旦我运行升级命令,我就会卡在这里:
带有闪烁的光标。当我退出命令窗口(我正在使用 Windows)时,没有应用任何更改。
我试过了
- 重新启动计算机
- 使用 pgAdmin 寻找锁或其他会话
- 修改其他表,能够添加和删除列
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"}
会引发以下问题:
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__.py
了run.py
,它只会工作一次,因为我停止了应用程序,然后再次重新启动应用程序,我得到了与上面相同的错误。
python - Heroku 上的 Flask 数据库迁移
在我的应用程序中,我使用 flask-script 和 flask-migrate 进行数据库迁移,一切都在本地工作。什么时候,我跑
它创建此输出:
但是当我运行时heroku run python manage.py db migrate
出现错误
当我运行heroku run bash
并查看我的目录时,我可以看到没有migrations
文件夹......
我试过运行给出命令--app fpds-scheduler
,但这似乎也不起作用。
我不确定出了什么问题?