将外部源的数据同步到 django 项目中使用的数据库?

Synchronizing data from external source to db used in django project?

我需要每晚从 csv 文件同步数据以更新我的 django 项目中的数据(我使用 mysql 作为后端)。数据包含用户信息 - 有时要删除用户,有时必须添加新用户,有时有关特定用户的某些信息已更改并需要更新。我需要保持同步。是否有任何内置函数可以执行此操作(即管理。py/django-admin)?我是否编写 python 脚本并使用我的 Django 模型来操作数据?是否 ok/safe 绕过模型直接使用数据库中的表?最佳做法是什么?

如果有帮助,我正在使用 Python 3.7 和 Django 2.1。

没有可能满足您确切需求的预建命令,但是 python 可以很好地 csv reading utilities and you could write a custom Django command 读取您的 csv 文件并添加、删除或更新您的用户模型。

除非您有特殊要求——即庞大的数据集或其他约束——我建议与 Django 的模型层交互以进行更改,而不是直接与数据库交互。这样,如果您对未在数据库级别表示的用户模型进行任何特殊验证(选择、整数范围等),您将避免引入数据不一致。

最后的想法 - 在您的命令中,考虑使用 Django 的 ORM 提供的以下优秀方法:Manager.get_or_create and Manager.update_or_create。它们对于避免重复数据和优雅地告诉 ORM 就地创建或修改等很有用。

祝你好运!