为什么 Django 迁移会临时占用磁盘空间?

如何解决为什么 Django 迁移会临时占用磁盘空间?

设置:

  1. Django (2.2.18) 和 Postgres (9.5) 在一台服务器上,同一个磁盘。
  2. 迁移正在改变 1 个表(添加删除字段)。

我不确定我的问题是否正确,但我在应用迁移时遇到了上面的设置问题。错误来自 psycopg2:

diskFull: Could not extend file "base/167296/1842042": wrote only 4096 of 8192 bytes at block 161
HINT:  Check free disk space.

当前磁盘使用量为 20G 中的 14G。我们通过删除一些文件并再次运行迁移来解决该问题。我们观察到磁盘使用量暂时增加到 20G 的 96% 左右,然后又回到 14G。现在我们需要做一些事情,这样问题就不会再发生了。我的问题是:

  • 如果我们将数据库移动到类似 RDS 的位置,是否就足够了?

我问是因为我不确定是数据库大小暂时膨胀还是 django 在磁盘上创建了临时文件。在第二种情况下,这意味着移动数据库并不能真正解决问题。

我很感激参考,因为我在 django 文档上找不到任何关于此的内容(或者我是盲人)。

解决方法

请参阅https://stackoverflow.com/a/33769195/6733421

如上所述,如果您在添加的新字段中有任何默认值或非空约束,PostgreSQL 不会执行该操作。因此,您可以删除默认值、约束并创建列。如上述链接中所述,随后添加它们。

至于 RDS 问题, 您可以使用 2 种类型。 RDS PostgresRDS Aurora

RDS Aurora 提供无服务器选项。如果你选择它,你真的不需要担心存储

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?