Django 1.8 与 Postgres BDR 9.4.1 的迁移

2024-02-27

我正在尝试使用 BDR 在 Postgres 数据库上运行 Django 迁移。

python manage.py makemigrations

工作正常,但正在运行

python manage.py migrate

结果出现以下错误:

ALTER TABLE … ALTER COLUMN TYPE … may only affect UNLOGGED or TEMPORARY tables when BDR is active; auth_permission is a regular table

有问题的模块是django/django/contrib/auth/migrations/0002_alter_permission_name_max_length.py.

我没有找到任何关于如何使用 Django 取消记录表的信息,特别是因为 auth_permissions 是一个 Django 表(不是我创建的)。我也不确定 UNLOGGED 表是否会复制。

有人有建议吗?


为了将迁移与 BDR 结合使用,您需要仅使用“安全”操作手动创建迁移,因为 BDR 当前无法复制迁移中的操作等操作。

在我最近与第二象限(BDR 开发的主要发起人)的支持人员进行的电子邮件对话中,我获得了有关该主题的以下信息:

目前尚无交付此内容的时间表。这是很难完成的。

您仍然可以更改列的类型,只需执行多个步骤即可。在 一般来说,您在 BDR 中执行 DDL 就像使用 PostgreSQL 中的锁避免方法。所以在这种情况下你:

  • 添加不带 DEFAULT 且不带任何 NOT NULL 的新列,然后提交。如果需要,还可以创建一个触发器来自动填充新的 插入值时的列。或者更改新列以设置 默认,如果这样更合适的话。
  • 更新表以将值复制到具有新类型的新列
  • 如果合适的话,更改表以使其不为空
  • 删除旧列

我还发现这篇文章来自 BrainTree https://www.braintreepayments.com/blog/safe-operations-for-high-volume-postgresql/对于什么可以被认为是“安全”操作以及如何重写迁移中的行为是一个很好的参考。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 1.8 与 Postgres BDR 9.4.1 的迁移 的相关文章

随机推荐

  • 如何使用 PDO 和 SQL Server 获取最后插入行的 ID?

    在其他情况下我可能会想使用 result mssql query INSERT INTO table fields VALUES data SELECT CAST scope identity AS int 但由于我将插入用户提交的数据 我
  • 如何对 WIX 合并模块进行单元测试?

    我正在使用 WIX 构建合并模块 调用 WIX 工具从 wxs 文件生成合并模块的批处理文件由我的日常构建运行 我试图弄清楚如何自动化这些合并模块的测试 我想测试的是 合并模块是否安装了所需的文件 文件的版本是否正确等 我的一个想法是编写一
  • 使用 support-v7-appcompat 在 ActionBar 中搜索视图

    我一直在努力使用 support v7 库让 SearchView 小部件在操作栏中展开 当我的目标是 4 0 时 我已经设法在没有支持库的情况下让它工作 但我想为 2 3 编写应用程序 所以我需要使用支持库 我使用以下 menu xml
  • 具有自定义视图的扩展工具栏未以全宽显示

    我在这里浏览了很多与工具栏相关的答案 但没有一个答案可以帮助我 我想要实现的是拥有一个扩展工具栏 它将显示一个徽标 可能是活动 应用程序的名称 它将在右侧有一个操作按钮 抽屉切换开关 它将显示一个类似导航的抽屉右侧是一个带有其他选项 如设置
  • 如何为 PyQt QTabwidget 着色

    我有一个包含 QTabWidget 的 PyQt 主窗口 选项卡小部件包含一些按钮和文本框 我想为整个选项卡背景着色 而不仅仅是在选项卡栏区域中粘贴的选项卡 我没有使用样式表 并且更喜欢使用调色板 因为我已经在使用调色板 但如果样式表是唯一
  • 线程“main”中的异常 java.lang.NoClassDefFoundError: gherkin/formatter/Formatter

    我正在学习如何使用 Cucumber 在 JAVA 中编写 BDD 测试脚本 但是 我不断收到上述错误 但不知道为什么 我有 Cukes Gherkin 作为依赖 POM
  • 结构对于其他文件的可见性如何表现?

    这是摘自对 SO 上另一个问题的回答 结构定义对于源文件来说是私有的 除非放置在 共享头文件 没有其他源文件可以访问该成员 struct 即使给定一个指向该结构的指针 因为布局不是 在其他编译单元中已知 如果该结构需要在其他地方使用 则必须
  • Twitter Bootstrap Collapse 不执行任何操作

    我正在尝试使用 twitter bootstrap 网站上提供的示例来崩溃 当我尝试此代码时 单击链接折叠内容没有任何反应 这是我的代码
  • 推送到数组后,待办事项列表不会刷新

    每当我向数组添加待办事项时 它都不会在 html 中刷新 我需要什么来解决这个问题 另外 如何将循环创建的删除按钮连接到函数 const form document querySelector form const input docume
  • 从 crontab 运行存储过程

    我有布局 Mysql DB DB name db name DB User name user name Password 12345 Stored procedure my stored procedure 如何从 crontab 每天执
  • JavaScript 可以像 jQuery 一样使用 prevAll 吗?

    如何在 JavaScript 中实现这一点 function prevAll element some code to take all siblings before element return elements With previo
  • 如何以rails方式获取新创建记录的id?

    假设我有 2 个模型model1 and model2 model1有很多model2 model2 belongs to model1 Save model1 and model2同时 class Model1 lt ActiveReco
  • 从nodejs调用firebase云函数

    我想从另一个 NodeJS 服务器或只是一个 NodeJS 脚本调用 Firebase 的云函数 我的 firebase 函数是 onCall 函数 我在用https www npmjs com package firebase admin
  • Sprockets::FileNotFound 找不到类型为“text/css”的文件“bootstrap”

    这是当我尝试运行 Rails 服务器时在浏览器中遇到的错误 couldn t find file bootstrap with type text css 我的 gemfile 中有这个 gem bootstrap sass gt 3 3
  • 在 QtQuick 中应用 MVVM 模式

    我如何在 QtQuick 应用程序中应用 MVVM 模式 有人能给我任何示例 简单 代码吗 Thanks 使用 C ViewModel https bitbucket org AntyaDev qtquickmvvmexample over
  • 如何减少anaconda目录下的文件数量?

    我在计算集群上运行 conda 环境 其中每个 项目 的文件总数受到限制 最多 200k 个文件 我只创建了几个 conda 环境 anaconda for Python 2 7 每个环境中安装了约 200 个 python 和 R 包 环
  • 如何从 mp4 视频中删除或编辑 Exif?

    我用 Samsung Galaxy II 录制了一个全高清视频 当我将其上传到 YouTube 时 我发现它变成了 90 度 就像纵向布局 1080x1920 而不是 1920x1080 我找到了问题的原因 YouTube 正在读取视频元数
  • JNA 结构和指针映射

    如何将下面的函数映射到java VOID WriteToStruct BOOL 状态 STRUCT MSG RecBuff 这个函数的作用是 1 填充结构 RecBuff2 更新状态 如何映射到 Java 中的布尔指针并访问函数更新的结构数
  • STM32 上的 ADC 单次转换

    我正在研究 STM32 F103x 上的 ADC 编程 并从最简单的情况 单次转换开始 测量内部温度传感器 连接到 ADC1 的值 并使用 USART 将其发送到 COM 端口 目标似乎很明确 但是当我尝试将源代码下载到闪存时 它不会向 C
  • Django 1.8 与 Postgres BDR 9.4.1 的迁移

    我正在尝试使用 BDR 在 Postgres 数据库上运行 Django 迁移 python manage py makemigrations 工作正常 但正在运行 python manage py migrate 结果出现以下错误 ALT