Django: создание отдельного набора моделей в оперативной памяти SQLite DB на лету - PullRequest
0 голосов
/ 24 января 2020

Что я пытаюсь сделать:

У меня есть огромный набор моделей в моем приложении Django (v2.3.3) в PostgreSQL БД, но теперь для уточнения c Задача мне нужно создать довольно сложную агрегацию объектов БД. И было бы намного проще работать с ними, если бы я мог только в том потоке / процессе, который обрабатывает этот указанный c веб-запрос, создать в памяти БД SQLite, определить там новый набор классов моделей (без внешних ключей конечно, к глобальному набору моделей), создайте несколько объектов в этой БД, сделайте мои вычисления и уничтожьте эту БД при выдаче ответа. Для согласованности я хотел бы также использовать Django модели для этой небольшой БД.

Возможно ли это? Или у тебя есть идеи получше?

1 Ответ

0 голосов
/ 29 января 2020

В итоге я получил SQLAlchemy + решение в памяти SQLite:

from sqlalchemy import Column, Integer, String, ForeignKey, create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship, sessionmaker, backref

Base = declarative_base()
engine = create_engine('sqlite:///:memory:')
Session = sessionmaker(bind=engine)
session = Session()


class Node(Base):
    """A node entity in sankey diagram."""
    __tablename__ = 'node'

    id = Column(Integer, primary_key=True)
    name = Column(String)  # unique - might include parts from event.extra_data
    event = Column(String)  # not unique - totally equeals to event.event

Base.metadata.create_all(engine)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...