Как подключиться к AuraDB (бесплатный уровень) Neo4J из Django?
Я добавил следующие строки к своему settings.py
следующим образом:
from neomodel import config
import dj_database_url
NEOMODEL_NEO4J_BOLT_URL = 'neo4j+s://xxxxxxx.databases.neo4j.io'
NEOMODEL_SIGNALS = True
NEOMODEL_FORCE_TIMEZONE = False
NEOMODEL_ENCRYPTED_CONNECTION = False
NEOMODEL_MAX_CONNECTION_POOL_SIZE = 50
user = 'neo4j'
psw = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
uri = 'neo4j+ssc://xxxxxxxx.databases.neo4j.io'
DATABASE_URL = 'neo4j+ssc://{}:{}@{}'.format(user, psw, uri)
config.DATABASE_URL = 'neo4j+ssc://{}:{}@{}'.format(user, psw, uri)
DATABASES = {'default': dj_database_url.config(default=DATABASE_URL)}
И я получаю эту ошибку, когда запускаю python manage.py migrate
:
Traceback (most recent call last):
File "manage.py", line 22, in <module>
main()
File "manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "S_v1\venv\lib\site-packages\django\core\management\__init__.py", line 442, in execute_from_command_line
utility.execute()
File "S_v1\venv\lib\site-packages\django\core\management\__init__.py", line 382, in execute
settings.INSTALLED_APPS
File "S_v1\venv\lib\site-packages\django\conf\__init__.py", line 102, in __getattr__
self._setup(name)
File "S_v1\venv\lib\site-packages\django\conf\__init__.py", line 89, in _setup
self._wrapped = Settings(settings_module)
File "S_v1\venv\lib\site-packages\django\conf\__init__.py", line 217, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "C:\Users\P\AppData\Local\Programs\Python\Python38\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 848, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "S_v1\mysite_2\mysite\settings.py", line 102, in <module>
DATABASES = {'default': dj_database_url.config(default=DATABASE_URL)}
File "S_v1\venv\lib\site-packages\dj_database_url\__init__.py", line 72, in config
return parse(
File "S_v1\venv\lib\site-packages\dj_database_url\__init__.py", line 126, in parse
raise ValueError(
ValueError: No support for 'neo4j+ssc'. We support: cockroach, mssql, mssqlms, mysql, mysql-connector, mysql2, mysqlgis, oracle, oraclegis, pgsql, postgis, postgres, postgresql, redshift, spatialite, sqlite, timescale, timescalegis
Я не хочу использовать локальную базу данных, которую Django создает по умолчанию. Есть ли способ подключить мое приложение Django к базе данных графов в облачном хостинге AuraDB?
Эта настройка работает для меня, который использует neo4j+s, а не neo4j+ssc.
DATABASE_URL=neo4j+s://neo4j:<awesome_password>@<db_aura_svr>.databases.neo4j.io:7687
Ваша настройка uri = 'neo4j+ssc://xxxxxx.databases.neo4j.io' использует протокол ssc, который включает шифрование без проверки сертификатов, обычно для использования с самоподписанными сертификатами. Пожалуйста, удалите этот протокол и используйте вместо него следующий:
uri = 'xxxxxxxx.databases.neo4j.io:7687
config.DATABASE_URL = 'neo4j+s://{}:{}@{}'.format(user, psw, uri)
См. мой пример ниже:
(venv) josebacoy@users-MBP-2 paradise_papers_search % export DATABASE_URL=neo4j+s://neo4j:<awesome_password>@<db_aura_svr>.databases.neo4j.io:7687
(venv) josebacoy@users-MBP-2 paradise_papers_search % python manage.py runserver --settings=paradise_papers_search.settings.dev
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
March 26, 2024 - 15:44:03
Django version 2.2.24, using settings 'paradise_papers_search.settings.dev'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[26/Mar/2024 15:44:22] "GET / HTTP/1.1" 200 14521
[26/Mar/2024 15:44:22] "GET /fetch/jurisdictions HTTP/1.1" 200 39
[26/Mar/2024 15:44:22] "GET /fetch/datasource HTTP/1.1" 200 39
[26/Mar/2024 15:44:22] "GET /fetch/countries HTTP/1.1" 200 39
[26/Mar/2024 15:44:25] "GET /fetch/count?t=Intermediary&q=&p=0 HTTP/1.1" 200 48
[26/Mar/2024 15:44:25] "GET /fetch/count?t=Officer&q=&p=0 HTTP/1.1" 200 48
[26/Mar/2024 15:44:25] "GET /fetch/count?t=Other&q=&p=0 HTTP/1.1" 200 48
[26/Mar/2024 15:44:25] "GET /fetch/count?t=Entity&q=&p=0 HTTP/1.1" 200 48
[26/Mar/2024 15:44:25] "GET /fetch/count?t=Address&q=&p=0 HTTP/1.1" 200 48
[26/Mar/2024 15:44:25] "GET /fetch/nodes?t=Entity&q=&p=1 HTTP/1.1" 200 48