假设我在同一个数据库表上有两种不同的类型(单表继承):
class Employee(db.Model):
id = db.Column(db.Integer, primary_key = True)
name = db.Column(db.String, nullable = False)
discriminator = db.Column('type', String)
__mapper_args__ = {'polymorphic_on': discriminator}
class Manager(Employee):
__mapper_args__ = {'polymorphic_identity': 'manager'}
division = db.Column(db.String, nullable = False)
role = db.Column(db.String, nullable = False)
class Worker(Employee):
__mapper_args__ = {'polymorphic_identity': 'worker'}
title = db.Column(db.String, nullable = False)
(是的,我使用的是 Flask-SqlAlchemy 而不是普通的香草)现在我该如何将一种声明性模型转换为另一种。也就是说,如果一个“工人”被提升为“经理”怎么办?我怎么做?我是否必须编写原始 SQL 才能做到这一点?
抱歉,如果之前有人问过这个问题,但我无法从 Google 中找到它。请注意,这是一个人为的例子。