除了内置方言,如何将新方言添加到Alembic?

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

现在,我想通过alembic管理Apache Hive中的架构,并注意到PyHive支持SQLAlchemy接口,因此从技术上讲Alembic可以将hive作为新的方言来支持。因此,我发现了这篇帖子Integrate PyHive and Alembic,但似乎需要在软件包alembic/ddl/impl.py中进行入侵alembic

有什么可行的方法吗?我不介意将公关贡献给Alembic或pyHive,但需要指导。

hg999520 回答:除了内置方言,如何将新方言添加到Alembic?

我在原始电子邮件列表中使用this thread来获取足够的信息:

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

好吧,您必须将其放入try / except ImportError块中,以便如果未安装alembic,则它会以静默方式通过。

是否有任何指导以可插拔的方式在淡啤酒级对此提供支持?例如,在项目的env.py中声明一个HiveImpl类使用了Alembic吗?

您也可以在env.py中放入一个,但是如果您是使用方言的人,则可以内置它,请参见sqlalchemy-redshift中的示例:https://github.com/sqlalchemy-redshift/sqlalchemy-redshift/blob/master/sqlalchemy_redshift/dialect.py#L27

本文链接:https://www.f2er.com/2721695.html

大家都在问