工作中,sit环境需要批量导入已经存在的数据库,以及账号密码,用来管理开发在sit环境执行db的行为。由于涉及到的db众多,手动从前端页面录入费时费力,
因此,写了个小脚本处理数据。
首先把所有数据库处理成列表:
1 def deal_text(): 2 database_list = [] 3 for line in open(r\'C:\xxx\databases.txt\'): 4 line = line.strip().replace(\'\n\', \',\') 5 database_list.append(line) 6 return database_list 7 8 9 if __name__ == \'__main__\': 10 deal_text()
databse_list = [\'rec\', \'wfm\']
接着执行数据库插入操作:
1 from sqlalchemy import create_engine, MetaData 2 from sqlalchemy import Table 3 4 engine = create_engine(\'mysql+cymysql://root:password@10.32.23.52:3306/xxx\', echo=False) 5 metadata = MetaData(engine) 6 core_table = Table(\'core_databaselist\', metadata, autoload=True) 7 conn = engine.connect() 8 9 def ex(databases_name): 10 for database_name in databases_name: 11 r = dict( 12 connection_name=database_name, 13 computer_room=\'Own\', 14 ip=\'xxx\', 15 username=database_name + \'_testrw\', 16 port=xxx, 17 password=\'xxx\' 18 ) 19 conn.execute(core_table.insert(), [r]) 20 21 22 if __name__ == \'__main__\': 23 # 填写数据库名称 24 databases_name=[ \'oas\', \'org\', \'osp\', \'pay\', \'pes\', \'pf_test\', \'pms\', \'pre\', \'prs\', \'sag\', \'seal\', \'sfm\', \'sms\', \'sonar\'] 25 ex(databases_name)
这样就执行了数据库的批量插入了。注意安装sqlalchemy,cymysql