Теперь этот ответ немного искал, но я не могу найти его, поскольку все относится к объединенному наследованию таблицы, которое я понимаю, но не хочу использовать. Я хочу создать несколько классов в SQLAlchemy, которые идентичны в построении таблиц, только отличающиеся именем имени класса и таблицы базы данных. Я намеренно разделяю таблицы и не использую дискриминатор, потому что ожидаю, что эти таблицы вырастут до очень больших размеров. Существует также вероятность того, что схемы таблиц могут медленно расходиться с течением времени, причем некоторые поля добавляются к одному, но не к другому.SQLAlchemy - несколько классов, идентичные таблицы
Я знаю, что следующий код не работает, поскольку SQLAlchemy пытается найти внешний ключ для присоединенного наследования таблиц вместо того, чтобы делать их независимыми таблицами, но это в основном то, что я собираюсь сделать. Я был над документами, но не могу понять, как правильно это реализовать. Есть ли способ (или несколько способов) сделать это?
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class HDD(Base):
"""Class representing a hard drive."""
__tablename__ = 'HDDs'
_id = Column(
Integer,
doc="Auto-incrementing primary key",
name="id",
primary_key=True)
manufacturer = Column(
String(40),
doc="Hard drive manufacturer.")
...
class SDD(HDD):
__tablename__ = 'SSDs'
...
Я еще не пробовал этот метод (см. Ниже мое решение), но я могу дать ему шанс в будущем! – ZetaSyanthis
Пробовал тоже, и мне это очень нравится! Очень чистый! – ZetaSyanthis