我无法找到任何显示如何将sqlacodegen与Teradata一起使用的资源 . 我试过这个语法:

sqlacodegen teradata://<username>:<password>@host --outfile models.py

这给出了以下错误跟踪:

回溯(最近一次调用最后一次):文件“c:\ users \ 212628419 \ appdata \ local \ programs \ python \ python36 \ lib \ runpy.py”,第193行,在_run_module_as_main“main”,mod_spec)文件“c: \ users \ 212628419 \ appdata \ local \ programs \ python \ python36 \ lib \ runpy.py“,第85行,在_run_code exec(代码,run_globals)文件”C:\ Users \ 212628419 \ AppData \ Local \ Programs \ Python \ Python36 \ Scripts \ sqlacodegen.exe__main __ . py“,第9行,在文件”c:\ users \ 212628419 \ appdata \ local \ programs \ python \ python36 \ lib \ site-packages \ sqlacodegen \ main.py“中,第40行,在main metadata.reflect(engine,args.schema,not args.noviews,tables)文件“c:\ users \ 212628419 \ appdata \ local \ programs \ python \ python36 \ lib \ site-packages \ sqlalchemy \ sql \ schema . py“,第3962行,in reflect Table(name,self,** reflect_opts)文件”c:\ users \ 212628419 \ appdata \ local \ programs \ python \ python36 \ lib \ site-packages \ sqlalchemy \ sql \ schema.py “,第456行,新元数据._remove_table(名称,架构)文件”c:\ users \ 212628419 \ appdata \ local \ programs \ python \ python36 \ lib \ site-packages \ s qlalchemy \ util \ langhelpers.py“,第66行,退出compat.reraise(exc_type,exc_value,exc_tb)文件”c:\ users \ 212628419 \ appdata \ local \ programs \ python \ python36 \ lib \ site-packages \ sqlalchemy \ util \ compat.py“,第187行,重新提升值文件”c:\ users \ 212628419 \ appdata \ local \ programs \ python \ python36 \ lib \ site-packages \ sqlalchemy \ sql \ schema.py“,line 451,在new table._init(name,metadata,* args,** kw)文件“c:\ users \ 212628419 \ appdata \ local \ programs \ python \ python36 \ lib \ site-packages \ sqlalchemy \ sql \ schema . py“,第533行,_init include_columns,_extend_on = _extend_on)文件”c:\ users \ 212628419 \ appdata \ local \ programs \ python \ python36 \ lib \ site-packages \ sqlalchemy \ sql \ schema.py“,第546行,在_autoload _extend_on = extend_on文件“c:\ users \ 212628419 \ appdata \ local \ programs \ python \ python36 \ lib \ site-packages \ sqlalchemy \ engine \ base.py”,第1545行,在run_callable中返回callable(self, * args,** kwargs)文件“c:\ users \ 212628419 \ appdata \ local \ programs \ python \ python36 \ lib \ site-packages \ sqlalchemy \ engin e \ default.py“,第389行,在reflecttable表中,include_columns,exclude_columns,** opts)文件”c:\ users \ 212628419 \ appdata \ local \ programs \ python \ python36 \ lib \ site-packages \ sqlalchemy \ engine \ reflection.py“,第618行,在reflecttable table_name,schema,** table.dialect_kwargs):文件”c:\ users \ 212628419 \ appdata \ local \ programs \ python \ python36 \ lib \ site-packages \ sqlalchemy \ engine \ reflection.py“,第374行,在get_columns中col_def ['type'] = coltype()TypeError:'NoneType'对象不可调用

我知道我们需要指定连接到teradata的驱动程序,但语法如下:

sqlacodegen teradata://<username>:<password>@host?driver=Teradata\ Database\ ODBC\ Driver\ 16.10 --outfile models.py

给出以下错误:

sqlacodegen:错误:无法识别的参数:Database \ ODBC \ Driver \ 16.10 --op.py

有没有办法从sqlalchemy-teradata生成模型文件?我尝试了自动化和反射,两者都给出了与第一行相同的错误跟踪,除了错误跟踪的第一行是:

File "C:\Users\212628419\AppData\Local\Programs\Python\Python36\lib\site-packages\sqlalchemy\ext\automap.py", line 754, in prepare
autoload_replace=False

之前在sqlalchemy-teradata dialect.py模块中有错误,在用最新版本的code替换dialect.py之后就出现了问题 .