- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有一个应用程序,我想今天为它创建一个新的迁移。当我运行时
$ alembic revision -m "__name__"
我收到一条消息
Only a single head is supported. The script directory has multiple heads (due branching), which must be resolved by manually editing the revision files to form a linear sequence.
Run `alembic branches` to see the divergence(s).
运行
alembic branches
什么都不做
我是 Alembic 的新手。有 2 个开发人员在开发这个应用程序,我们有 2 个 git 分支 - master 和 develop(我不确定这是否与它有关)。
有什么线索吗?
最佳答案
也许最传统(也是最强大)的解决方案是使用 alembic merge 头
。就像在 Git 中有两个分支时,您可以通过 merge 提交将它们重新组合在一起,在 Alembic 中,当您有两个分支时,您可以通过 merge 修订将它们重新组合在一起。
例如,假设我们有一个添加表 A 的修订版 1a6b1a4a0574 和一个添加表 B 的修订版 2e49118db057。我们可以在 中看到这些修订版(都标记为
:(head)
)蒸馏历史
$ alembic history
<base> -> 2e49118db057 (head), Add table B
<base> -> 1a6b1a4a0574 (head), Add table A
然后我们可以通过运行 alembic merge 头
来 merge 它们:
$ alembic merge heads
Generating /Users/markamery/alembictest/alembic/versions/409782f4c459_.py ... done
$ alembic history
2e49118db057, 1a6b1a4a0574 -> 409782f4c459 (head) (mergepoint), empty message
<base> -> 2e49118db057, Add table B
<base> -> 1a6b1a4a0574, Add table A
如果您的某个修订可能已经在某处运行(包括在您的一位同事的开发机器上),那么您可能想要使用 alembic merge
而不是修补 正如此处的其他答案所建议的那样,其中一个修订版本的 down_revision
。修补向下修订的危险在于它可能导致修订永远不会被应用。例如,假设您的同事 Bob 已经 pull 下您的修订版 2e49118db057 的分支并运行 alembic upgrade head
,创建表 B。然后您决定修改 2e49118db057 的 down_revision
指向 1a6b1a4a0574,Bob 以前从未见过或跑过。 Bob pull 下您的更改,运行 alembic upgrade head
,然后...什么也没有发生,因为就 Alembic 而言,他已经在 head
并且不需要运行 1a6b1a4a0574。所以 Bob 最终永远不会得到表 A,而且可能永远不会弄清楚他的数据库为什么会处于损坏状态。
不要破坏 Bob 的数据库 - 改为进行 merge 修订。
关于python - alembic 修订 - 多头(由于分支)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22342643/
为包含未推送变更集的 -r 选项指定修订/修订集的最佳方法是什么,这对于在本地克隆或在仅包含已推送变更集的存储库中创建书签很有用。 当您需要在工作中切换到其他您还没有准备好插入的事情时,通常需要这样做
我正在寻找一个合适的过程来保留数据库中行(及其关系)的修订或快照。 以电子商务平台为例- 客户创建订单。该订单与账单地址和送货地址相关联。 该客户随后更改了个人资料中地址簿中的地址。 原始订单的地址不
我喜欢 DocumentViewer 在 WPF 应用程序中显示 XPS 文档。但我还需要编辑 XPS 文档。我找到了用于编辑 XPS 的独立应用程序 (.exe)。我需要的是一个用于查看和编辑 XP
所以我目前正在分析我的 Spring Java 项目。我想做的一件事是计算文件/类已更改的次数。在 Eclipse 中,我可以右键单击一个类,选择 Team --> Show History,它会显示
目前我可以从没有纹理的 DAE 文件加载地球模型,只是为了显示屏幕上有东西。为此,我使用了 GLU。 但现在我正在尝试使用我们的GLM 和着色器 来加载带有纹理的模型。我遇到的问题是正确地让它们一起工
如何检查特定 Safari 二进制文件中使用了 webkit 的哪个修订版(svn 修订版)?例如,我想知道 Mac 上最新的 Safari(雪豹 10.6.7)使用的是哪个版本。 用户代理不提供此信
修订数据的存储方式每个受修订影响的对象在 _AUD 中都有一个单独的记录。 table 。因此,当我搜索影响对象的修订时 A ,我会找回修订版为3的条目用于对象 B , 但如果对象 A和/或 C修订版
在 git 中,您可以通过类似 master^^ 的方式引用修订版。 , 意思是 master 之前的两次修订。你能以某种方式(或通过某种扩展)在 Mercurial 中做同样的事情吗?例如,如果我想
我正在尝试使用 Python 2.7 对维基百科文章的内容如何随时间变化进行分析。我只对页面的内容感兴趣,发现最简单的方法是使用 Wikipedia package .我的代码成功加载了一篇文章,然后
我在 Alembic 中有一个依赖于特定后端的修订版,但语义并不明确依赖于它(只会让事情变得更快)。 我希望我的代码不依赖于特定的后端(即修改在运行时不会给出错误)。我应该在 def upgrade(
我有一个 Xcode 项目的本地 git 存储库。如何(从终端)将项目的特定修订 checkout 到不同的文件夹? 谢谢。 最佳答案 您可以将本地存储库克隆到另一个文件夹中: clone a spe
据我所知,git 通过保存更改的行来存储修订。运行文本文档,如文档或冗长的 LaTeX 文件,通常有很长的行或在 80 个字符后被强制中断。当一个词被更改时,它会导致更改行的巨大差异,从而使 git
我目前在我公司的官僚主义 hell 中,需要定义什么构成了我们测试程序的不同级别的软件更改。我们有一个我们内部遵循的粗略实践,但我正在寻找一个标准(如果存在)以在我们的质量体系中引用。我认识到开发人员
我已经开始使用 Hibernate Envers 来审计日志记录业务对象。我已经阅读了文档,并且从我看到的所有示例中,查询是通过修订号完成的。 我想按修订日期查询,即获取被审计实体在特定日期或日期范围
我正在构建一个网站,用户可以在其中更改其公开显示的个人资料。但是,我需要所有更改在上线之前都得到管理员的批准。在更改获得批准之前,他们的旧个人资料将显示。在管理员中应该有一个等待批准的配置文件列表。最
我正在构建一个网站,用户可以在其中更改其公开显示的个人资料。但是,我需要所有更改在上线之前都得到管理员的批准。在更改获得批准之前,他们的旧个人资料将显示。在管理员中应该有一个等待批准的配置文件列表。最
我编辑了这个问题,因为下面提到的答案是在使用 while 和 begin 时,它应该在存储过程中。 所以现在我在存储过程中运行它,但我仍然遇到错误。 counter; while counter <
我刚开始使用 Hibernate Envers 进行审计,我想知道是否有办法在两个日期之间获取一个类的所有修订。 到目前为止我一直在使用: AuditQuery query = reader.crea
我认为前缀++ 和后缀++ 之间的唯一区别是它们的优先级。显然我错了。也许重要的是返回值? 最佳答案 在 C++ 中,++++i 可以编译,因为前缀 operator++ 返回一个左值。但是,仍然不建
在 Jenkins 中,我使用 XML API 来获取提交的 SHA,例如 http://jenkins/view/job/test/470/api/xml?xpath=//lastBuiltRevi
我是一名优秀的程序员,十分优秀!