如何在Alembic中添加新的方言(除了内置的方言)?

3

Alembic仅支持5种内置方言:https://github.com/sqlalchemy/alembic/tree/master/alembic/ddl

现在我想通过Alembic在Apache Hive中管理模式,并注意到PyHive支持SQLAlchemy接口,因此从技术上讲,Alembic可以支持将hive作为新方言。因此,我找到了这篇文章Integrate PyHive and Alembic,但是它似乎需要在alembic包中的alembic/ddl/impl.py进行修改。

有没有可行的方法来做到这一点? 我不介意向alembic或pyHive贡献PR,但需要指导。

1个回答

0

我在原始的电子邮件列表中使用了这个帖子来获取足够的信息:

这是否意味着它必须引入对alembic的依赖(因为它使用了alembic.ddl.impl.DefaultImpl),并且放在支持sqlalchemy接口的包(例如pyHive)中?

嗯,你必须将它放在一个try/except ImportError块中,这样如果alembic没有安装,它就会静默地跳过。

有没有任何指导来以可插拔的方式在alembic级别上支持这个?比如,在使用alembic的项目的env.py中声明一个HiveImpl类?

你也可以将它放在你的env.py文件中,但如果你是负责方言开发的人,你可以内置这个功能。请参考sqlalchemy-redshift中的示例:https://github.com/sqlalchemy-redshift/sqlalchemy-redshift/blob/master/sqlalchemy_redshift/dialect.py#L27


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接