django - 来自 docker 容器的 Django loaddata 命令
问题描述
我有一个 django 应用程序,我把它放在一个 docker 容器中进行部署。我有一些初始数据,我想通过dumpdata
andloaddata
命令加载到数据库中。初始数据位于我的本地硬盘驱动器上。我选择了一种非常幼稚的方法,只是简单地将data_backup.json
文件通过scp
.
现在,我想通过执行以下命令加载 data_backup.json 文件(该文件位于服务器上,而不是 docker 容器中):
sudo docker-compose exec restapi python manage.py loaddata --settings=rest.settings.production ./data_backup_20191004.json
但是 Django 只在内部目录中搜索固定装置。
我正在寻找一种使用 docker 容器内的 data_backup.json 文件填充数据库的方法。有人可以帮忙吗?
最终,我正在寻找一种将数据直接转储到 S3 并在需要时从那里加载(用于数据库备份)的方法。如果您对如何实现这一点有任何提示,这也将非常有帮助 - 我似乎无法找到相关材料。
解决方案
以防万一将来有人有这个问题。可以从标准输入加载数据。因此,您可以只获取备份文件并将其通过管道传输到数据库中(在容器中使用如下命令:
cat <<fixture_name.json>> | sudo docker exec -i <<container_name_or_id>> python manage.py loaddata --format=json -
最后一个破折号告诉 django 你想从标准输入加载数据。
推荐阅读
- html - 如何在 Shopify Buy Button 的 iFrame 中实施 CSS 更改
- git - 除非将用户名添加到 url,否则找不到 Git 存储库
- vba - VBA raising events from modeless Userfrom
- r - 使用 for 循环在 R 中使用 manova?
- java - (Java) 从文件中读取时如何跳过空格?
- azure - Azure 部署脚本测试,无需部署资源
- html - 为什么我的页脚不在页面底部?
- node.js - 向现有 AWS CloudFormation 堆栈添加新的输出和资源
- python - 在字典中搜索单词并返回行
- javascript - 关于 Promise 异步 JavaScript 的问题