Обновление веб-приложений Pyramid / SQLAlchemy - PullRequest
5 голосов
/ 23 мая 2011

У меня есть стандартный запуск приложения Pylons Pyramid, которое использует SQLAlchemy для сохранения своей базы данных.

Я установил репозиторий SQLAlchemy-migrate и он работает, но я действительно хочу иметь возможность использовать paster для обновления и понижения версии базы данных или, по крайней мере, какой-то способ иметь пользователя (после установки яйца) обновить / понизить базу данных до требуемой версии.

Теперь я встроил его в свое приложение, поэтому при запуске приложения оно выполняет обновление версии, но я бы предпочел сделать что-то, когда пользователь явно должен обновить базу данных, чтобы они точно знали, что происходит. и знать, чтобы сделать резервные копии заранее.

Как бы я поступил об этом? Как добавить команды для вставки?

Способ настройки приложения для пользователей:

paste make-config appname production.ini
paste setup-app production.ini#appname

Чтобы настроить его в первый раз, чтобы выполнить обновление базы данных или обновление вообще, я бы хотел:

paste upgrade-app production.ini#appname

Или что-то в этом роде.

Ответы [ 2 ]

1 голос
/ 02 июня 2011

Вы можете создать свою собственную команду paster, например, upgrade-app, а затем вызывать ее из любого места с помощью paster --plugin=appname upgrade-app /path/to/production.ini appname.Вы можете обратиться к тому, как пирамида реализует PShellCommand.

0 голосов
/ 23 мая 2011

Это не совсем то, что вы ищете, но я могу справиться с этим только с помощью команд Fabric . Мое приложение OSS У меня есть команда Fabric, которую вы запускаете, которая создает файл .ini для вашего приложения, а затем, после настройки в нем sqlalchemy.url, вы запускаете команду Fabric, которая выполняет миграцию SA init и запускает обновление. С этого момента для обновления вы запускаете fab db_upgrade.

http://bmark.us/install.html

пример установки документации, которую я установил.

https://github.com/mitechie/Bookie/blob/master/fabfile/database.py

Набор специфических для БД команд, доступных через интерфейс Fabric.

...