gpt4 book ai didi

python - 将生产 django 数据库的一部分复制到本地或暂存

转载 作者:搜寻专家 更新时间:2023-10-30 20:50:44 24 4
gpt4 key购买 nike

我有一个包含 3 个环境(本地、暂存、生产)的 Django 网站。

生产包含一些我不希望我的开发人员访问的数据(用户的个人数据和财务数据)。

出于合规性原因,不能选择进行数据库备份恢复。

但是,我们在本网站上也有一些我们使用 Wagtail CMS 管理的内容页面。

我正在寻找一种在需要时将生产数据(仅某些模型,但特别是 wagtail 页面)同步回登台和开发人员本地环境的方法。

理想情况下,我会有一个可以在另一个环境中运行的管理命令来复制数据:

示例:./manage.py sync_from_prod BlogPost 这会在本地或暂存环境中找到所有缺失的博客文章,并在数据库中创建它们。我找不到任何图书馆为 Wagtail 或 Django 这样做。

这似乎是一个常见问题,我很惊讶地发现没有 Stackoverflow 问题或开源库可以解决这个问题。

如果什么都不存在,我可能会尝试编写自己的 django-model-sync(找到了这个项目,但是它已有 3 年历史并且兼容直到 django 1.7,我在 python3 django 1.11 上)

例如,为了管理安全性,开发人员可以使用 secret 访问公开数据(通过 ssl)的生产 API

最佳答案

您可以对要复制的模型使用命令 dumpdata

在生产命令中使用 ./manage.py dumpdata app_name.model_name > model_name.json。这会将所选数据库表的所有数据保存在文件 model_name.json 中。然后在本地或阶段服务器上为此文件使用 loaddata:./manage.py loaddata model_name.json.

您可以在这里阅读更多相关信息:https://the-bosha.ru/2016/06/29/django-delaem-damp-bazy-dannykh-i-vosstanavlivaem-iz-nego-s-dumpdata-i-loaddata/(仅限俄语说明)

关于python - 将生产 django 数据库的一部分复制到本地或暂存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44319954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com