为什么 django 迁移会临时占用磁盘 space?
Why do django migrations temporarily take disk space?
设置:
- Django (2.2.18) 和 Postgres (9.5) 在一台服务器上,同一磁盘。
- 迁移正在改变 1 table(添加和删除字段)。
我不确定我的问题是否正确,但我 运行 在应用迁移时遇到了上述设置的问题。错误来自 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 文档上找不到任何关于此的内容(或者我是盲人)。
请参考。
如前所述,如果您在添加的新字段中有任何默认值或没有空约束,PostgreSQL 不会就地执行操作。因此,您可以删除默认值、约束并创建列。然后按照上面提到的 link.
添加它们
关于 RDS 问题,
您可以使用 2 种类型。 RDS Postgres and RDS Aurora.
RDS Aurora 有一个无服务器选项。如果你选择那个,你真的不需要担心存储
设置:
- Django (2.2.18) 和 Postgres (9.5) 在一台服务器上,同一磁盘。
- 迁移正在改变 1 table(添加和删除字段)。
我不确定我的问题是否正确,但我 运行 在应用迁移时遇到了上述设置的问题。错误来自 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 文档上找不到任何关于此的内容(或者我是盲人)。
请参考
如前所述,如果您在添加的新字段中有任何默认值或没有空约束,PostgreSQL 不会就地执行操作。因此,您可以删除默认值、约束并创建列。然后按照上面提到的 link.
添加它们关于 RDS 问题, 您可以使用 2 种类型。 RDS Postgres and RDS Aurora.
RDS Aurora 有一个无服务器选项。如果你选择那个,你真的不需要担心存储