python-3.x - 在不删除数据库的情况下关闭 django dev 项目的正确方法是什么
问题描述
蟒蛇 3.8 码头工人 Django 3
我有一个刚刚转换为 docker 的 django 项目。我注意到每次我关闭我的 docker 容器然后重新启动它时,我的数据库都会被删除。
当我旋转 docker 容器时,它应该杀死数据库吗?如果不是,那就有问题了。如果是这样,那么在我进行更改而不杀死数据库的情况下,让 django 脱机的最佳做法是什么
命令:
docker-compose up -d --build
输出
Creating myproject_db_1 ... done
Creating myproject_web_1 ... done
命令
docker-compose down -v
输出
Stopping myproject_db_1 ... done
Stopping myproject_web_1 ... done
Removing myproject_db_1 ... done
Removing myproject_web_1 ... done
我确实有一个入口点脚本,它曾经每次都刷新数据库,但我现在已经注释掉了。入口点.sh
#!/bin/sh
if [ "$DATABASE" = "postgres" ]
then
echo "Waiting for postgres..."
while ! nc -z $SQL_HOST $SQL_PORT; do
sleep 0.1
done
echo "PostgreSQL started"
fi
#python manage.py flush --no-input
python manage.py migrate
exec "$@"
码头工人-compose.yml
version: '3.7'
services:
web:
build: ./src
command: python manage.py runserver 0.0.0.0:8000
volumes:
- ./src/:/usr/src/app/
ports:
- 8000:8000
env_file:
- ./.env.dev
depends_on:
- db
db:
image: postgres:12.0-alpine
volumes:
- postgres_data:/var/lib/postgresql/data/
env_file:
- ./.env.dev.db
volumes:
postgres_data:
解决方案
推荐阅读
- java - 从 api 调用向 android studio (java) 中的 CompactCalendar CalendarView 添加事件
- javascript - 我如何只输入一个网站的链接?
- php - Laravel - 从数据库中选择类别
- sql-server - 内联函数,每个视图或函数中的列名必须是唯一的
- xamarin - 当我们连接到 android 10 上的特定 wifi 时,互联网没有运行,而路由器中的互联网可用
- angular - 检查角度 chekcbox 更改其他输入值
- php - 使用正则表达式匹配字符串格式
- file-upload - Next.js 和 Ant Design Dragger:已部署实例上的文件上传失败
- python - PyInstaller:ModuleNotFoundError:没有名为“编码”的模块
- node.js - 为什么 update_by_query 在尝试更新大量文档时返回“套接字挂起”错误?