如何以跨平台方式生成 Microsoft SQL Server DDL(最好使用 Python)?
我想要一种跨平台的方法,把SQL Server数据库的DDL导出到文件中,这样我就可以把它们放到版本控制里。目前我在Windows上用VBScript和SQLDMO来做这个,但我希望能在Linux系统上也做到,最好是用Python。
我现在有一个解决方案,使用SQLAlchemy的表反射功能,但速度有点慢,而且目前没有给我想要的所有细节。例如,外键的“ON DELETE CASCADE”信息缺失了。
有没有其他项目可以从T-SQL中重建DDL?如果有的话,我应该能比较容易地把它移植到Python上。其他建议也欢迎。
2 个回答
0
这不是一个完整的解决方案(这是一个脚本,最初由Tim Chapman写的,我在网上找来的,后来也修补过几次),但我用的是一个T-SQL的存储过程,可以用来生成表的脚本:
如果你想生成其他对象的脚本(比如存储过程、视图等),这个工具就没什么用处了。不过如果你只需要表的结构,它对我来说效果还不错!就像@Randy上面提到的,它可以处理表、索引和约束,但这个脚本不支持触发器。
0