postgres数据库使用sqlacodegen将已存在的表生成对应的model
2022/7/13 2:21:31
本文主要是介绍postgres数据库使用sqlacodegen将已存在的表生成对应的model,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
需要安装的包如下: greenlet==1.1.2 importlib-metadata==4.12.0 inflect==5.6.1 psycopg2==2.9.3 sqlacodegen==3.0.0rc1 SQLAlchemy==1.4.39 zipp==3.8.0 代码如下:
import os from tools.db import DB import threading def gen_table_model(tablename): os.system(f'sqlacodegen postgresql+psycopg2://username:password@192.168.80.150:5432/dbname --tables {tablename}> ./3.0.0/{tablename}.py') if __name__ == '__main__': db = DB("192.168.80.150", "5432", "username", "password", "dbname") db.connect() all_tables = db.fetch_all("SELECT tablename FROM pg_tables WHERE tablename not LIKE 'pg%' AND tablename NOT LIKE 'sql_%' ORDER BY tablename;") db.close() table_list = [] for table in all_tables: print(table) print(type(table)) for t in table: table_list.append(t) threads=[] for table in table_list: threads.append( threading.Thread(target=gen_table_model,args=(table,)) ) for thread in threads: thread.start() for thread in threads: thread.join()
注意,由于数据库自增值的类型是identity,这个转换时只有在sqlacodegen 3.0.0版本才生效,如果使用2.4.x版本,会报错。
这篇关于postgres数据库使用sqlacodegen将已存在的表生成对应的model的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15PingCAP 黄东旭参与 CCF 秀湖会议,共探开源教育未来
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升