Python с orm и несколькими источниками данных - PullRequest
0 голосов
/ 01 апреля 2020

Я написал приложение, которое использует python и sqlalchemy в качестве orm. Я сохраняю свои объекты в базе данных postgresql, чтобы управлять ревизиями объектов.

В sqlalchemy мне нужно определить в моих сопоставленных объектах столбцы, например:

class Product(Base):
    __tablename__ = 'products'
    barcode = Column('barcode', TEXT, nullable=False)
    product_name = Column('name', TEXT, nullable=False)

Я хочу сохранить эти объекты также вasticsearch, чтобы воспользоваться его возможностями поиска. Для того, чтобы использовать elasti c, мне также нужно сопоставить продукт с elasti c, что-то вроде:

class ELKDocument(Document):
    # meta attributes
    _index = 'products'
    _doctype = "samples"
    _es = Elasticsearch(host='localhost', port=9200)

    # map field to es
    barcode = StringField()
    product_name = StringField()

Так что же является лучшей практикой здесь? Должен ли я иметь DAO для каждого источника данных и преобразовывать один в другой, когда мне это нужно? Есть ли способ создать один DAO, который я могу использовать с несколькими источниками данных?

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