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

python - Flask Migrate:Alembic 将选择转换为 255

我正在使用 sqlalchemy_utils 将“选择”字段添加到我的数据库中。在我使用 Flask Migrate 运行迁移后,它会将我所有的选择转换为 255,下面是一个简化的示例:

运行后manage.py migrate,迁移文件如下所示:

我手动将它们更改length=255为正确的类型(在本例中stuff_types),它起作用了。我想知道我是否没有正确设置 alemic 以使用 sqlalchemy_utils。或者是否有我不知道的更好的解决方案?

多谢你们!

0 投票
1 回答
3130 浏览

python - 烧瓶迁移似乎删除了我所有的数据库数据

这是我的迁移文件:

我运行了标准命令:

生成的数据库是一个同名文件,其大小以 kb 为单位,但只有一个表“alembic_version”,其中没有任何内容。我试图降级,发现我所有的桌子都回来了,但它们都是空的。我做错了什么?所有数据隐藏在哪里(文件大小相同 kb)?

0 投票
0 回答
935 浏览

python - Flask-Migrate:模式迁移后数据迁移不适用

首先,我使用 Flask-Migrate(Flask 的 Alembic 迁移)创建模式迁移。之后,我创建了单独的数据迁移脚本(也使用了 Flask-Migrate)。但是当我运行./manage db upgrade应用所有未应用的迁移时,我在控制台输出中看到应用了哪些模式迁移,但没有数据迁移,并且进程处于挂起状态。杀死迁移过程后,我在数据库中看到,既没有架构迁移,也没有应用数据迁移。/manage.py db upgrade <schema_migration_revision>但是,当我使用和之类的命令逐个运行迁移时./manage db upgrade <data_migration_revision>,所有迁移都毫无问题地应用了。

架构迁移:

数据迁移:

如何用一个命令升级数据库?

0 投票
1 回答
1711 浏览

python - 如何在flask-sqlalchemy中按索引创建订单

有以下几种:Flask、Flask-sqlalchemy、Flask-migrate

有一个描述表的类:

当您迁移此模型以使用此查询创建索引 order_fio_desc 时:

由于存在字段名称的事实,PostgreSQL 数据库不允许创建这样的索引。但是如果把name字段去掉表的名字,创建索引就没有问题了:

如何请求创建生成的索引?

0 投票
3 回答
15385 浏览

python - 如何在不传递 db 对象的情况下将 Flask 模型从 app.py 中拆分出来?

我想使用Flask-Migrate并查看他们的示例:

这作为一个简单的播放示例非常有用,但我有不止一个模型,我不想在这个脚本和定义我的应用程序代码的脚本中定义模型。因此,我想将它们拉入一个模型文件中,以便在两者之间共享。

我试图通过将User类放入 amodels.py然后从那里导入 User 来做到这一点。不幸的是,这会引发NameError: name 'db' is not defined.

我的问题是:

  • 我是否需要db = SQLAlchemy(app)在我的 中使用models.py,如果需要,我的迁移脚本和烧瓶应用程序本身都可以使用它吗?
  • 如果我不能(或不应该)把它放进去models.py,我如何在他们自己的文件中使用我的模型而不会db全部通过?
0 投票
1 回答
3206 浏览

python - 如何在烧瓶迁移迁移中自动导入模块

我的烧瓶项目在其一些模型定义中使用 sqlalchemy_utils,这会导致迁移错误,例如:

由于此包未在迁移文件中导入。

我想让 flask-migrate / alembic 自动生成将此包导入迁移文件的行,我该如何实现?

我查看了 alembic.ini 和 migrations/env.py - 但对我来说,什么是正确的方法/如果可能的话并不明显。

0 投票
1 回答
1356 浏览

python - 烧瓶迁移忽略外键

我正在使用 Flask-migrate 创建迁移。我有2个模型如下 -

第一个模型,即用户是在第一次迁移中创建的,这很好。但是当我添加第二个模型(Post)时,忽略了外键约束,并生成了以下迁移文件-

它只是忽略了用户和正文字段。我该如何解决这个问题,以便使用所有字段?

0 投票
1 回答
1178 浏览

python - 烧瓶无法运行 db migrate - NameError: name 'conn_uniques' is not defined

每次我更新我的模型时,我都必须删除并重新初始化数据库。

./manage.py db init 然后初始 ./manage.py db migrate

工作,但每个后续都./manage.py db migrate失败并出现以下错误:

我使用 SQLite3 数据库。我将模型拆分为多个文件,但将它们放在一个文件中,但没有帮助。我也试过升级flask-migrateflask-sqlalchemy等包也无济于事。有什么问题?

更新: 我正在使用 Alembic 版本 0.6.2

0 投票
1 回答
3686 浏览

python - 从 Flask-Migrate 管理器运行应用程序

我使用这些行来启动我的应用程序:

使用 Flask-Migrate,我有这个:

manager.run不采用相同的参数app.run,如何定义主机和端口?

0 投票
1 回答
44 浏览

python - 是否可以让用户从表单创建和执行数据库迁移?

您可以获取表单数据并更改数据库架构吗?这是个好主意吗?从“默认”数据库进行的许多迁移是否有缺点?


我希望用户能够添加/删除表、列和行。进行架构更改需要迁移,因此添加该功能需要编写一个视图,该视图采用表单数据并将其插入到使用 Flask-Migrate 的函数中。

如果我设法构建它,迁移是否构建所需的单独脚本以及每次添加或删除某些内容时随之而来的所有内容?对于这样的事情是否实用,其中可能会将 10 或 20 个新表添加到起始数据库中?

如果我允许用​​户向表中添加列,则必须修改表的类。这是可能的,还是一个安全的想法?如果没有,如果有人可以帮助我,我将不胜感激,至少让我指出正确的方向。