作者:她能让你微笑衙 | 来源:互联网 | 2022-12-23 15:29
我在本地主机上有带某些表的sqlite数据库,我想将该数据库复制并粘贴到在docker上运行的服务器上。我创建了这样的路径:
db_data:有我想在django项目中运行的sqlite数据库。
网址:这是我的整个django项目
在我的docker-compose.yml我写了这个卷:
version: "3"
services:
web:
build: ./web/
ports:
- "8001:8001"
volumes:
- ./web:/code
- /home/cosmo/db_data/db.sqlite3:/code/db.sqlite3
command: python manage.py runserver 0.0.0.0:8001
因此,我认为docker将在我的db_data中获取数据库并在我的Web文件夹中创建卷(在我的项目中。我在localhost上有数据库,因此不会有问题。)但我将在此处粘贴settings.py:
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# Database
# https://docs.djangoproject.com/en/2.0/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
因此,当我将在db_data中打开db.sqlite3时,每个表和内容都在那里,但是当我运行容器时,我的项目文件夹(web)中的db.sqlite3为空。
当我将运行docker ps命令时,没有数据库容器,也许这是我不知道的问题。我只有那里:
红色圆圈中是我的django容器。因此,何时运行服务器并尝试从数据库登录每个帐户是未知的。因此,我认为容器可以与我项目中的空数据库一起使用。有人有什么解决办法吗?谢谢。