mg_company_alias_init.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. # mongo公司别名表索引初始化
  2. import sys
  3. import re
  4. import os
  5. abspath = os.path.abspath(__file__)
  6. root_path = re.sub(r"tendata-warehouse.*", "tendata-warehouse", abspath)
  7. sys.path.append(root_path)
  8. from dw_base.utils.config_utils import parse_args
  9. from configparser import ConfigParser
  10. from pymongo import MongoClient
  11. def get_mongo_client(conf_path):
  12. config_parser = ConfigParser()
  13. config_parser.read(root_path + conf_path)
  14. print('conf_path:', root_path + conf_path)
  15. url = config_parser.get('base', 'address')
  16. return MongoClient(url)
  17. def create_index(client, tbl_name):
  18. collection = client['tendata_corp'][tbl_name]
  19. collection.create_index([("tid", 1)], unique=True)
  20. collection.create_index([("qybzmc", 1)])
  21. def check_index(client, tbl_name):
  22. collection = client['tendata_corp'][tbl_name]
  23. index_info = str(collection.index_information())
  24. cnt = collection.count()
  25. print(f'{tbl_name} count: {cnt}')
  26. if "'key': [('tid', 1)], 'unique': True" in index_info and "'key': [('qybzmc', 1)]" in index_info:
  27. return True
  28. else:
  29. return False
  30. if __name__ == '__main__':
  31. ent_mg_conf = '/../datasource/mongo/mongo-ent-prod-alias-rw.ini'
  32. CONFIG, _ = parse_args(sys.argv[1:])
  33. country = CONFIG.get('country')
  34. tbl_name = f'company_alias_{country}'
  35. client = get_mongo_client(ent_mg_conf)
  36. create_index(client, tbl_name)
  37. if check_index(client, tbl_name):
  38. print(f'{tbl_name}: index ok')
  39. else:
  40. print(f'{tbl_name}: index not ok,plz check!')