У меня есть доступ к гигантской базе данных MongoDB с данными, которые были собраны некоторым оборудованием. В настоящее время он находится на удаленном сервере.
Мне нужно развивать его, используя Django (желательно).
Я могу итерацию с ним нормально, используя прямо вверх pymongo, но я бы хотел сделать это больше, используя встроенные функции Django. Мне очень нравится способ обработки данных Django, а не выполнение запросов mongodb. Поэтому я установил Djongo - разъем для Django.
С Pymongo я просто использую его вот так
client = MongoClient('ipaddress',
username='ronald',
password='password',
authSource='scanning',
authMechanism='SCRAM-SHA-1')
db = client["scanning"]
collection = db["some_collection"]
Это отлично работает, и я могу без проблем подключиться к коллекции.
Итак, переходя к Джонго, я предполагаю, что смогу подключиться к нему аналогичным образом, однако продолжаю получать тайм-ауты. Это мои настройки базы данных в Settings.py
DATABASES = {
'default': {
'ENGINE': 'djongo',
'ENFORCE_SCHEMA': False,
'NAME': 'some_collection',
'HOST': 'ipaddress',
'PORT': 27017,
'USER': 'ronald',
'PASSWORD': 'password',
'AUTH_SOURCE': 'scanning',
'AUTH_MECHANISM': 'SCRAM-SHA-1',
}
}
Время ожидания запуска сервера истекает.
Возможно ли это сделать?
Не лучше ли сделать локальный дамп БД и хранить его в чистой MongoDB, оптимизированной для Django?
Должен ли я просто принять вкус и выполнять только монго-запросы?
Любой совет будет оценен.
Спасибо
Edit:
Вот отсылка к ошибке
System check identified no issues (0 silenced).
Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x10d726268>
Traceback (most recent call last):
File "/Users/ronald/dev/clients/qc/datamanagement/venv/lib/python3.7/site-packages/django/utils/autoreload.py", line 225, in wrapper
fn(*args, **kwargs)
File "/Users/ronald/dev/clients/qc/datamanagement/venv/lib/python3.7/site-packages/django/core/management/commands/runserver.py", line 120, in inner_run
self.check_migrations()
File "/Users/ronald/dev/clients/qc/datamanagement/venv/lib/python3.7/site-packages/django/core/management/base.py", line 442, in check_migrations
executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
File "/Users/ronald/dev/clients/qc/datamanagement/venv/lib/python3.7/site-packages/django/db/migrations/executor.py", line 18, in __init__
self.loader = MigrationLoader(self.connection)
File "/Users/ronald/dev/clients/qc/datamanagement/venv/lib/python3.7/site-packages/django/db/migrations/loader.py", line 49, in __init__
self.build_graph()
File "/Users/ronald/dev/clients/qc/datamanagement/venv/lib/python3.7/site-packages/django/db/migrations/loader.py", line 212, in build_graph
self.applied_migrations = recorder.applied_migrations()
File "/Users/ronald/dev/clients/qc/datamanagement/venv/lib/python3.7/site-packages/django/db/migrations/recorder.py", line 61, in applied_migrations
if self.has_table():
File "/Users/ronald/dev/clients/qc/datamanagement/venv/lib/python3.7/site-packages/django/db/migrations/recorder.py", line 44, in has_table
return self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor())
File "/Users/ronald/dev/clients/qc/datamanagement/venv/lib/python3.7/site-packages/django/db/backends/base/introspection.py", line 56, in table_names
return get_names(cursor)
File "/Users/ronald/dev/clients/qc/datamanagement/venv/lib/python3.7/site-packages/django/db/backends/base/introspection.py", line 51, in get_names
return sorted(ti.name for ti in self.get_table_list(cursor)
File "/Users/ronald/dev/clients/qc/datamanagement/venv/lib/python3.7/site-packages/djongo/introspection.py", line 46, in get_table_list
for c in cursor.db_conn.collection_names(False)
File "/Users/ronald/dev/clients/qc/datamanagement/venv/lib/python3.7/site-packages/pymongo/database.py", line 715, in collection_names
nameOnly=True, **kws)]
File "/Users/ronald/dev/clients/qc/datamanagement/venv/lib/python3.7/site-packages/pymongo/database.py", line 674, in list_collections
read_pref) as (sock_info, slave_okay):
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/contextlib.py", line 112, in __enter__
return next(self.gen)
File "/Users/ronald/dev/clients/qc/datamanagement/venv/lib/python3.7/site-packages/pymongo/mongo_client.py", line 1099, in _socket_for_reads
server = topology.select_server(read_preference)
File "/Users/ronald/dev/clients/qc/datamanagement/venv/lib/python3.7/site-packages/pymongo/topology.py", line 224, in select_server
address))
File "/Users/ronald/dev/clients/qc/datamanagement/venv/lib/python3.7/site-packages/pymongo/topology.py", line 183, in select_servers
selector, server_timeout, address)
File "/Users/ronald/dev/clients/qc/datamanagement/venv/lib/python3.7/site-packages/pymongo/topology.py", line 199, in _select_servers_loop
self._error_message(selector))
pymongo.errors.ServerSelectionTimeoutError: ipaddress:27017: timed out