Handling mongo indexes in firm
This commit is contained in:
31
api/rpk-api/firm/init_db.py
Normal file
31
api/rpk-api/firm/init_db.py
Normal file
@@ -0,0 +1,31 @@
|
||||
import logging
|
||||
|
||||
from firm.contract.models import Contract, ContractDraft
|
||||
from firm.core.depends import Registry
|
||||
from firm.current_firm import CurrentFirm, Partner
|
||||
from firm.db import client
|
||||
from firm.entity.models import Entity
|
||||
from firm.template.models import ContractTemplate, ProvisionTemplate
|
||||
|
||||
from hub.firm import Firm
|
||||
|
||||
collections = [CurrentFirm, Entity, Partner, Contract, ContractDraft, ContractTemplate, ProvisionTemplate]
|
||||
|
||||
logger = logging.getLogger('uvicorn.error')
|
||||
|
||||
async def create_documents_indexes(db):
|
||||
for collection in collections:
|
||||
if "indexes" in collection.document_config:
|
||||
for field in collection.document_config["indexes"]:
|
||||
collection.create_index(db, field)
|
||||
|
||||
async def init_all_db():
|
||||
logger.info("[FRM] Creating index for firms")
|
||||
for firm in await Firm.find({}).to_list():
|
||||
reg = Registry(client, firm.instance, firm.firm)
|
||||
await reg.current_firm
|
||||
await create_documents_indexes(reg.db)
|
||||
|
||||
|
||||
async def init_db():
|
||||
await init_all_db()
|
||||
Reference in New Issue
Block a user