Powiedzmy mam dwa różne typy zarówno na samej tabeli bazy danych (pojedynczy dziedziczenia tabela):sqlalchemy: Konwersja odziedziczony typ z jednego do innego
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)
(Tak, używam skrzynkowego sqlalchemy i nie zwykła wanilia) Teraz, jak mogę przejść do konwersji jednego modelu deklaratywnego na inny. To znaczy, co jeśli "pracownik" został awansowany na "menedżera"? Jak mogę to zrobić? Czy muszę napisać surowy SQL, aby to zrobić?
Przepraszam, jeśli zostało to wcześniej zadane, ale nie mogłem go znaleźć z Google. Pamiętaj, że jest to przykładowy przykład.
Myślę, że zamiast pisać nagi SQL, wystarczy wykonać wystąpienie menedżera i skopiować odpowiednie właściwości, a następnie usunąć oryginalnego pracownika. Ale może to być trudne w zależności od tego, ile jest obcych kluczy. – Hannele