Django SQLITE3 BASE_DIR 在移动机器时不起作用

问题描述 投票:0回答:2

所以我有以下代码指定我的数据库文件在我的系统上所在的路径。

它在我创建 django 项目的计算机上完美运行。但是,当我将项目移动到另一台计算机时,它找不到 db.sqlite3 文件,而是在该计算机的根目录中创建一个新文件,所以我必须创建一个DB_DIR并手动指定路径,并且不能使用BASE_DIR进行数据库连接。

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

有人有什么建议吗?

python django sqlite
2个回答
0
投票

试试这个(Django 3):

import os
from pathlib import Path

BASE_DIR = Path(__file__).resolve().parent.parent

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

0
投票

对于 sqlite,NAME 只是一个名称。文件始终放置在 BASE_DIR 中,并且名称中包含的任何路径元素都将被忽略。

有关更多详细信息,请参阅我的问题

© www.soinside.com 2019 - 2024. All rights reserved.