Код: Выделить всё
create view MyView as select 1 as A, 2 as B
Я заключаю это представление в определение модели SQLAlchemy. :
Код: Выделить всё
class MyView(Base):
__tablename__ = 'MyView'
A = Column(Integer)
B = Column(Integer)
Код: Выделить всё
create view MyView as select 1 as A, 2 as B, 3 as C
Предположим, на данный момент я это сделаю не планирую использовать столбец C из SQLAlchemy и не добавляю его в определение модели. Возможно, со временем я это сделаю, но по какой-то причине я пока не могу изменить код или, по крайней мере, не выпустить новую версию. Тем не менее безопасно ли добавлять столбец в представление и оставаться совместимым с существующим файлом модели SQLAlchemy?
Поскольку я спрашиваю о представлении, а не о таблице, предположим, что SQLAlchemy предоставляет доступ только для чтения. Приложение не пытается обновить представление или удалить его из представления, даже если это возможно в некоторых СУБД.
Не возникнет никаких проблем, если, скажем, SQLAlchemy попытается проанализировать столбцы в представлении и пожаловаться на дополнительные, не упомянутые в модели? Я думаю, что нет... но однозначного ответа я не нашел.
Подробнее здесь: https://stackoverflow.com/questions/791 ... -the-model
Мобильная версия