来自docker容器的Django loaddata命令

来自docker容器的Django loaddata命令,django,docker,Django,Docker,我有一个django应用程序,我把它放在docker容器中进行部署。我有一些初始数据要通过dumpdata和loaddata命令加载到数据库中。初始数据保存在本地硬盘上。我选择了一种非常简单的方法,通过scp将data\u backup.json文件复制到服务器上 现在,我想通过执行以下命令加载data_backup.json文件(该文件位于服务器上,不在docker容器中): sudo docker-compose exec restapi python manage.py loaddata

我有一个django应用程序,我把它放在docker容器中进行部署。我有一些初始数据要通过
dumpdata
loaddata
命令加载到数据库中。初始数据保存在本地硬盘上。我选择了一种非常简单的方法,通过
scp
data\u backup.json
文件复制到服务器上

现在,我想通过执行以下命令加载data_backup.json文件(该文件位于服务器上,不在docker容器中):

sudo docker-compose exec restapi python manage.py loaddata --settings=rest.settings.production ./data_backup_20191004.json
但是Django只在内部目录中搜索fixture

我正在寻找一种方法,用docker容器中的data_backup.json文件填充数据库。有人能帮忙吗?


最后,我正在寻找一种直接将数据转储到S3并在需要时从S3加载数据的方法(用于db备份)。如果您有关于如何实现这一点的任何提示,这也将非常有用-我似乎无法找到关于这一点的资料。

您可以在使用
docker cp运行命令之前将文件复制到docker容器中:

docker cp ./data_backup_20191004.json <container_id>:django_dir/data_backup_20191004.json

以防万一将来有人会问这个问题。可以从stdin加载数据。因此,您只需获取备份文件并将其导入数据库(在容器中,使用如下命令:

cat <<fixture_name.json>> | sudo docker exec -i <<container_name_or_id>> python manage.py loaddata --format=json -
cat | sudo docker exec-i python manage.py loaddata--format=json-
最后一个破折号告诉django您想从stdin加载数据

我正在寻找一种用 docker容器中的data_backup.json文件。有人能帮忙吗

请看Xen_mar的答案,我认为它是完美的

最终,我正在寻找一种将数据直接转储到S3和S3的方法 如果需要,从那里加载它(用于数据库备份) 如何做到这一点,这也将是非常有帮助的-我似乎没有 能够找到关于那个的资料


这似乎是一个完全不同的问题。我会考虑使用一些Django包,它允许你从管理员加载和转储固定设备,并且我假设可以配置Django走私者上传目录来处理Django存储。我不确定这是可能的,所以如果你尝试让我知道。,谢谢。我手边没有集装箱,但我想试试,然后再给你回复!

cat <<fixture_name.json>> | sudo docker exec -i <<container_name_or_id>> python manage.py loaddata --format=json -