Как подключиться к базе данных снежинок из фреймворка Django
Я новичок в Django и пытаюсь отобразить результат, полученный из базы данных Snowflake. Я знаю, что Django имеет несколько встроенных серверных движков базы данных, например:django.db.backends.postgresql
а также django.db.backends.mysql
среди других он поддерживает.
К сожалению, я не смог найти правильный способ настройки серверной части базы данных в
settings.py
Когда я вхожу sqlalchemy
или snowflake-sqlalchemy
в качестве двигателя я получаю эту ошибку:
Try using 'django.db.backends.XXX', where XXX is one of:
'mysql', 'oracle', 'postgresql', 'sqlite3'
Я предполагал, что пойти с sqlalchemy
поскольку это то, что я обычно использую для подключения к Snowflake за пределами Django, но по какой-то причине он не работает должным образом.
Буду признателен за любые рекомендации по этому поводу.
3 ответа
Обновление 2022 года: теперь есть серверная часть Snowflake для Django, финансируемая клиентами Snowflake и реализованная Тимом Грэмом из Django :
Из их документов:
Установка и использование
Используйте версию django-snowflake, соответствующую вашей версии Django. Например, чтобы получить последнюю версию, совместимую с Django 3.2.x:
pip install django-snowflake==3.2.*
Младший номер версии Django не соответствует младшему номеру версии django-snowflake. Используйте последнюю дополнительную версию каждого из них.
Настройте параметр Django DATABASES следующим образом:
DATABASES = {
'default': {
'ENGINE': 'django_snowflake',
'NAME': 'MY_DATABASE',
'SCHEMA': 'MY_SCHEME',
'WAREHOUSE': 'MY_WAREHOUSE',
'USER': 'my_user',
'PASSWORD': 'my_password',
'ACCOUNT': 'my_account',
},
}
Некоторые обсуждения при его реализации:
Вам следует установить кастомный
Snowflake
двигатель понравился следующие. Обратите внимание, что на сегодняшний день они не завершены. Хотя реализовать недостающие
Django
функции, заполнив
operations.py
файл.
-> https://github.com/pricemoov/django-snowflake
или же
please install snowflake-connector-python .E.g. below
pip3 install snowflake-connector-python==1.8.1
Here is the code to connect from SQL Alchemy.
=====================================================================
#!/usr/bin/env python
from snowflake.sqlalchemy import URL
from sqlalchemy import create_engine
engine = create_engine(URL(
account = 'XXXX',
user = 'XXXX',
password = 'XXXXX',
database = 'XXXXXX',
schema = 'XXXXXX',
warehouse = 'XXXXX',
role='XXXXXXXX',
))
try:
connection = engine.connect()
connection.execute(
"CREATE OR REPLACE TABLE test_async(c1 TIMESTAMP_NTZ,c2 VARIANT)",_no_results=True)
finally:
connection.close()
engine.dispose()
=========================================================================