ORM
позволяет быстро переключатся между БД не учитывая их диалект
(практически). Но данные хранятся физически в разных местах и естественно их
надо переносить, например при переключении с sqlite на PostgreSQL. В
Django есть встроенный функционал в виде:
У меня есть дополнение к pyramid которое я включаю почти в каждый проект при
помощи includeme
(include()
). Приложение
это дает мне простой CRUD
интерфейс с Jinja шаблонами малой кровью.
Что позволяет избавиться от монстра FormAlchemy. Естественно каждый
проект имеет свое название поэтому пришлось применить немного магии что бы
создать универсальный механизм получения DBSession
в своем подключаемом
дополнении.
SQLAlchemy в больших таблицах при таком запросе s.query(TableName).all()
зависает и выдает ошибку Memory error
. Для решения проблемы нужно
использовать метод yield_per()
. Если
необходимо еще изменять данные, то нужно делать коммиты каждые N записей.
Потому что я могу делать так:
Для своих REST контроллеров можно использовать, формы FormAlchemy.
Часто при проектировании структуры БД появляется необходимость повторять одни и те же действия с таблицами. Добавлять одинаковые поля, ссылки, счетчики и т.д. Модели в Pylons (SQLAlchemy), как и в большинстве других фреймворках использующих паттерн MVC, являются классом и соответственно могут быть унаследованы от других классов. Это позволяет нам избежать рутинной работы с повторяющимися действиями.
UPD: sadisplay - замечательная штука!