Подключите `sqlachemy` к базе данных django db
Есть ли способ подключиться sqlalchemy
к django db? Я запускаю тест django, где создается тестовая база данных connection._connections.settings['default']
дает:
{'ENGINE': 'django.db.backends.postgresql', 'NAME': 'test_db', 'USER': 'postgres', 'PASSWORD': 'qwertyu', 'HOST': 'localhost', 'PORT': '5432', 'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'OPTIONS': {}, 'TIME_ZONE': None, 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}}
Но если я попытаюсь подключиться к этой базе данных, используя sqlalchemy
:
user = settings.DATABASES['default']['USER']
password = settings.DATABASES['default']['PASSWORD']
database_name = settings.DATABASES['default']['NAME']
database_url = 'postgresql+psycopg2://{user}:{password}@localhost:5432/{database_name}'.format(
user=user,
password=password,
database_name=database_name,
)
engine = create_engine(database_url, echo=False)
создается совершенно новая база данных. Поэтому любые данные, вставленные с помощью model.bulkcreate()
в реальном времени, представляют собой другую базу данных, чем та, которая была создана с помощью sqlalchemy
.
Я хотел бы иметь возможность использовать оба варианта. Я хочу использовать sqlalchemy
для длинных временных рядов (от 1М до 10М рядов), где model.bulkcreate()
занимает очень много времени.
Есть ли способ соединить connection
с sqlalchemy
?
Спасибо
Я нашел aldjemy
в блоге здесь. https://rodic.fr/blog/sqlalchemy-django/
все, что необходимо, это
from aldjemy.core import get_engine
engine = get_engine()
df.to_sql(table_name, con=engine)