Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 10, 2008 16:05:33

demas
От:
Зарегистрирован: 2008-09-10
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

[sqlalchemy] - модификация таблиц

Небольшой идеологический вопрос начинающего по созданию и модификации таблиц. Правильно ли я понимаю, что sqlAlchemy сам генерит создает новые таблицы в базе данных?

Насколько я понял, это происходит в момент вызова: metadata.create_all(engine)

Более того, насколько я понял, sqlAlchemy достаточно интеллектуален, чтобы при изменении кода и последующем его запуске определить, что часть таблиц в базе уже создана, а часть еще нет и досоздает недостающие.

Однако, если я добавляю поле в определение:

product_table = Table('product', metadata,
Column('name', String(30), primary_key = True),
Column('category', String(30)),
Column('fat', Integer),
Column('protein', Integer),
Column('carbo', Integer)
)

то sqlAlchemy уже не догадывается сделать alter table add column.

По крайне мере у меня так. Это действительно так? В таких случаях необъодимо модифициоровать таблицу ручками?



Офлайн

#2 Сен. 10, 2008 16:23:40

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

[sqlalchemy] - модификация таблиц

да. Алхимия не содержит средства для автоматического изменения схемы данных.
Но есть довольно интересный проект sqlalchemy-migrate, предназначенный как раз для этого



Офлайн

#3 Сен. 10, 2008 16:59:59

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

[sqlalchemy] - модификация таблиц

> По крайне мере у меня так. Это действительно так? В таких случаях необъодимо модифициоровать таблицу ручкам
Это так. Я модифицирую ручками. Но голова, возвышающаяся над этими ручками, достаточно продуманная, что бы избежать таких манипуляций вообще или просто частых.

p.s. С первого взгляда, migrate не понравился.

..bw



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version