我有一个具有以下属性的DatabaseConnection
模式:db_type
,db_connection_details
.
现在,对于我的烧瓶应用程序,我支持两种数据库类型:mysql 和 postgresql,我有两种不同的模式,它们都与具有不同字段的db_connection_details
模式有关。
现在,在DatabaseConnection
架构中,是否可以根据db_type
指定要选择的架构。谢谢!
编辑:
示例输入如下所示:
"training_data": {
"source": "mysql",
"connection_details": {
"a": "",
"b": ""
}
}
DatabaseConnection
架构:
class DatabaseConnection(Schema):
source = fields.String(required=True)
connection_details = fields.Nested(ConnectionSchema, required=True)
现在 mysql 模式有a
、b
个字段(如示例中所示(,而 postgres 模式有额外的字段c
、d
。如果源是 mysql 数据库,它应该拾取MySqlConnectionSchema
,而如果源是 postgresql 数据库,它应该拾取PostgresConnectionSchema
(代替DatabaseConnection
架构中的ConnectionSchema
字段(。这在棉花糖中可能吗?
您是否尝试过对架构进行子类化并动态选择?像这样的东西。我还没有尝试或测试过它,所以只是一个想法。
class MySql(object):
a = 1
b = 2
class Postgres(object):
a = 1
b = 2
c = 3
d = 4
if _conn = 'mySql':
SubClass = MySql
else:
SubClass = Postgres
class DatabaseConnection(Schema, SubClass):
...