32 lines
1.0 KiB
Python
32 lines
1.0 KiB
Python
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()
|