我在myapp / settings.py文件中使用以下sqlite连接:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': ':testdb:',
#I also tried 'NAME': 'testdb',
},
}
在我正在使用的manage.py文件中:
if __name__ == "__main__":
os.environ.setdefault("myapp.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
在命令行上运行./manage.py migrate时出现以下错误:
django.db.utils.OperationalError: fe_sendauth: no password supplied
我尝试删除psycopg2并重新运行迁移并收到以下错误:
django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named 'psycopg2'
我无法理解为什么django尝试连接到psql数据库,其中应用程序中唯一的DATABSES配置是sqlite3。
这可能是由于依赖吗?
答案 0 :(得分:0)
试试这个,
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
这可能对您有所帮助。
答案 1 :(得分:0)
Django仅使用DATABASES
设置来使用特定的数据库驱动程序生成迁移。我相信某个地方,有一个导入覆盖了你的DATABASES
设置。这些是按优先级顺序查找调试的可能位置。
settings.py
变量后,导入DATABASES
文件的任何内容。INSTALLED_APPS
。