为什么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.

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

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

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

我很感激参考资料,因为我在django文档上找不到任何关于这方面的信息(或者我是盲人)。

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

正如上面提到的,如果您在添加的新字段中有任何默认值或非null约束,PostgreSQL不会在适当的位置执行操作。因此,您可以删除默认值、约束并创建列。然后按照上面提到的链接中提到的方式添加它们。

对于RDS问题,有两种类型可以使用。RDS Postgres和RDS Aurora。

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

最新更新