Django迁移1100万行,需要分解
Django migration 11 million rows, need to break it down
我有一个正在处理的 table,它包含大约 1100 万行...我需要 运行 对此 table 进行迁移,但由于 Django 尝试将其全部存储在缓存中 I 运行 out of ram or disk space which ever comes first and it comes abrupt halt.
我很想知道是否有人遇到过这个问题并想出了一个解决方案,基本上 "paginate" 一次可能迁移到 10-20k 行的块中?
只是为了提供一些背景知识,我正在使用 Django 1.10 和 Postgres 9.4,我希望尽可能保持自动化(我仍然认为可以)
谢谢
山姆
问题来自 Postgresql,它在添加新列(字段)时重写每一行。
您需要做的是按照以下方式编写自己的数据迁移:
- 使用
null=True
添加一个新列。在这种情况下,数据不会
重写和迁移将很快完成。
- 迁移它
- 添加默认值
- 再次迁移。
这基本上是一个关于如何在庞大的 postgres 数据库中添加新行的简单模式。
我有一个正在处理的 table,它包含大约 1100 万行...我需要 运行 对此 table 进行迁移,但由于 Django 尝试将其全部存储在缓存中 I 运行 out of ram or disk space which ever comes first and it comes abrupt halt.
我很想知道是否有人遇到过这个问题并想出了一个解决方案,基本上 "paginate" 一次可能迁移到 10-20k 行的块中?
只是为了提供一些背景知识,我正在使用 Django 1.10 和 Postgres 9.4,我希望尽可能保持自动化(我仍然认为可以)
谢谢 山姆
问题来自 Postgresql,它在添加新列(字段)时重写每一行。
您需要做的是按照以下方式编写自己的数据迁移:
- 使用
null=True
添加一个新列。在这种情况下,数据不会 重写和迁移将很快完成。 - 迁移它
- 添加默认值
- 再次迁移。
这基本上是一个关于如何在庞大的 postgres 数据库中添加新行的简单模式。