如何根据SQLAlchemy中的供应商创建不同的列

时间:2014-11-06 08:26:12

标签: python sqlalchemy

我正在尝试不专门为跨供应商(?)支持编写模型供应商,并坚持使用具有相同功能但名称不同的列选项。例如,对于性能问题和区分大小写,列上需要utf8_binary排序规则,但名称因供应商而异。

我知道最好的方法是在考虑跨供应商时避免使用这些类型和选项,但是当特定于供应商的选项不可避免时,是否有任何SQLAlchemy实现这样做?

1 个答案:

答案 0 :(得分:0)

您应该在特定于供应商的配置文件中定义列选项,如:

col_options = {'collation': 'utf8_binary'}

然后在模型定义中使用它,如下所示:

name = Column('name', String(**col_options))

**会将col_options中的所有键/值对映射到String作为关键字参数。