16

同じデータベース テーブルに 2 つの異なる型があるとします (単一テーブルの継承)。

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 からは見つかりませんでした。これは不自然な例であることに注意してください。

4

2 に答える 2