我尝试连接以将 MongoDB 数据库用于 Django 项目。
所以我按照从 settings.py 更改数据库的教程
# Original
DATABASES = {
'default': {
'ENGINE': 'djongo',
'NAME': 'testDB',
}
变成
# From tutorials
DATABASES = {
'default': {
'ENGINE': 'djongo',
'NAME': 'testDB',
'USERNAME': 'username',
'PASSWORD': 'password',
'HOST': 'myhostname.example',
'PORT': '27017',
}
}
试图跑
python manage.py makemigrations
python manage.py migrate
一切正常,但我的数据库中没有数据
显然 django 去了 localhost:27017 主机并在那里创建了一个数据库。
卸载MongoDB,只是导致makemigrations失败
pymongo.errors.ServerSelectionTimeoutError: localhost:27017: [WinError 10061] No connection could be made because the target machine actively refused it
我找到了解决方案。 https://stackoverflow.com/a/60244703/7637454
为了在这里完成答案,这就是您现在应该如何配置它。
DATABASES = {
'default': {
'ENGINE': 'djongo',
'NAME': 'yourmongodb',
'CLIENT': {
'host': 'some-host.or.ip',
'port': 27017,
'username': 'youruser',
'password': 'yourdbpass',
'authSource': 'yourcollection', # usually admin
}
},
}