我有一个具有以下属性的DatabaseConnection
模式:
db_type
,db_connection_details
。
现在,对于我的flask应用程序,我支持两种数据库类型: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
(代替{中的ConnectionSchema
字段{1}}模式)。棉花糖有可能吗?
答案 0 :(得分:0)
您是否尝试过继承模式并动态选择?这样的事情。我还没有尝试过或测试过它,只是一个想法。
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):
...