问题标签 [sqlalchemy-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 投票
1 回答
2537 浏览

sqlalchemy - 使用 sqlalchemy 向现有表添加列

有没有办法使用 sqlalchemy 向现有表添加列?查看选项,似乎 sqlalchemy-migrate 是流行的选项,但它似乎是围绕静态更改设计的。它还需要设置数据库以支持迁移并在我的主应用程序之外运行脚本以进行更新。如果编辑特定的 xml,我希望能够简单地添加新列,而不是删除旧列以维护数据。

我对捍卫这种设计不感兴趣,我只想知道是否有办法。

0 投票
1 回答
1516 浏览

sqlalchemy - 如何在事务中包装 create 和 sqlalchemy-migrate 更改语句

我正在尝试对我的数据库进行一些数据库架构更改,使用 sqlalchemy table.create 和 sqlalchemy-migrate table.rename 方法,以及一些插入到选择语句中。我想将所有这些包装在一个事务中。我不知道该怎么做。这是我尝试过的:

但它错误:

(我尝试使用 sqlalchemy-migrate column.alter(name='newname') 但该错误,并且在事务中不起作用,因此使我的数据库处于损坏状态。我还需要重命名多个列,所以我决定推出我自己的代码。)

0 投票
3 回答
19300 浏览

python - 如何使用 sqlalchemy-migrate 编写更改列名迁移?

我正在尝试更改列名。第一次尝试是使用这个脚本:

在我的开发数据库(sqlite)上运行migrate.py test有效,升级和降级也是如此。但是当我将它部署到我在 Heroku(使用 PostgreSQL 8.3)上的测试环境时,我在尝试升级时得到了跟踪。要点是这条消息:

然后我尝试users.c.user_id在升级方法中使用。这在两种环境中都失败了。:

我现在使用的解决方法是这个脚本:

已建议将模型复制粘贴到 sqlalchemy-migrate 脚本中。但是这种额外的重复对我来说有点太多了。任何人都知道这应该怎么做。假设这是一个错误,我想就如何干掉一些解决方法提出建议。

0 投票
2 回答
501 浏览

python - 是否有相当于 django-evolution 的 SQLAlchemy?

我想要的只是有一个有点类似于的工作流程:

  1. 将 django_evolution 添加到项目的 INSTALLED_APPS
  2. 运行 ./manage.py syncdb
  3. 修改项目中的模型文件
  4. 运行 ./manage.py Evolution --hint --execute

这是超级简单的,即使它不支持高级功能(如多个数据库),它也知道如何添加/删除列,这是一个常见的用例。

相比之下,sqlalchemy-migrate 的工作流程极其复杂,文档引用的两个教程( 12 )要么已过时,要么无关紧要。

0 投票
2 回答
3573 浏览

python - 金字塔模式迁移

我在 Gentoo 下使用“vanilla” Pyramid 1.4,我想对我的表进行更改并提交它们,而不必删除表(及其所有数据)然后重新创建它。我听说解决方案是模式迁移。

作为一个长期的 Django 用户,我一直在使用django-south,但现在我正在使用 Pyramid 我找不到任何处理迁移的方法。我读过关于sqlalchemy-migrate,它看起来非常好,但我不确定如何让它与 Pyramid 一起使用。

Pyramid 1.4 中有什么方法可以处理模式迁移吗?如果使用sqlalchemy-migrate是明智的选择,我如何让它与 Pyramid 一起使用?

干杯。

0 投票
1 回答
517 浏览

mysql - 使用 SQLAlchemy Migrate 删除重复的外键

错误地我添加了两个外键引用同一个表和列。SHOW CREATE TABLE table_a看起来像:

此时我唯一的解决方案是遍历列上的所有键/约束并删除它们,然后再添加一次级联键。

有没有办法使用SQLAlchemy Migrate仅删除非级联约束?

0 投票
0 回答
1046 浏览

sqlalchemy - Sqlalchemy-migrate 使用默认值创建列

我正在使用SQLAlchemy-migrate 0.6.1来处理我的 mysql 数据库的版本控制。链接指向文档。但他们似乎已经删除了 0.6.1 的文档。

我正在尝试将具有外键约束的新列添加到如下表中:

这是可行的,除了 mysql 会将 server_default 存储为默认值并将其添加到所有新记录中。就我而言,这个默认值不会保持不变。

我想用默认值填充列,但不将其作为默认值存储在 mysql 中。

我在文档中找到了这个:

但我怀疑它是在更新版本的 sqlalchemy-migrate 中添加的。任何人都知道这在 0.6.1 版本的 sqlalchemy-migrate 中是否可行?

0 投票
1 回答
547 浏览

python - column.copy() 上的 SqlAlchemy-migrate 中出现奇怪错误,列类型为 BigInteger。

情况稍微简化了一点。我有两个用于 sqlalchemy-migrate 的迁移文件:

FirstI create table 中volume_usage_cache,然后自动加载它,创建其列的副本并打印它:

我得到了我所期望的日志:

但是,如果我在Second迁移文件中复制列(在 之后运行First):

我得到不同的结果:

为什么curr_write_bytes列有 NullType?

0 投票
1 回答
3307 浏览

python - 烧瓶数据库问题

我使用本教程作为指导。http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-iv-database

我想拥有可以容纳多个产品的类别。类似于他如何拥有一个拥有多个帖子的用户。

当我打开 python 解释器并尝试创建一个类别时

我收到这个错误

所以backref有问题。在本教程中(我已经用他的代码进行了尝试)他能够使用类似的语法创建一个用户。

我什至尝试使用他的所有文件并创建和迁移一个新数据库,但我得到了同样的错误。

这是我的 models.py 文件:

0 投票
1 回答
10364 浏览

python - 如何使用 sqlalchemy-migrate 将列类型从字符变化更改为整数

我正在使用 sqlalchemy-migrate 来更改 Postgre SQL 数据库中表中一列的类型。我正在使用的升级脚本是:

升级部分似乎可以工作,但降级总是失败并出现以下错误:

现在,如果我使用普通 SQL,我可以使用ALTER TABLE courses ALTER COLUMN number TYPE INTEGER USING number::numeric将列类型从 更改回character varyinginteger但我不知道如何使用 sqlalchemy-migrate 来实现。

有没有办法强制 sqlalchemy 包含USING number::numericALTER子句中?还是有其他方法可以避免我上面发布的错误?

我感谢您的帮助。