2010-05-06 6 views
0

J'ai des migrations de base de données (avec sqlalchemy-migrate) qui fonctionnent bien dans mon environnement de développement. Cependant, je suis un peu perplexe sur la façon d'intégrer cela dans mon processus de déploiement.Fabfile avec prise en charge des déploiements sqlalchemy-migrate?

Je souhaite utiliser Fabric pour exécuter le fichier manage.py sur le serveur distant, mais je ne suis pas certain de savoir quoi utiliser pour la valeur du référentiel dans ce fichier. En se référant à la fois à 'appname/migrations' et à '/usr/local/pylons/appname/env/lib/python2.6/site-packages/appname-05.egg/appname/migrations/' tous les deux échouent avec un migrate.versioning .exceptions.InvalidRepositoryError

Est-ce que quelqu'un a un fabfile et manage.py qui joue bien avec sqlalchemy-migrate?

Répondre

2

Ce que j'ai fait était de générer un fichier manage.py par les documents sqlalchemy-migrations. Là, je l'ai piraté pour charger nos informations de configuration qui incluent l'info db auth. Dans notre cas, il s'agit d'une application Pylons qui lit donc le fichier Pigons config.ini approprié.

http://readthedocs.org/docs/sqlalchemy-migrate/en/latest/versioning.html#project-management-script

Ensuite, le tissu des commandes interagissent tous avec le fichier manage.py vs directement en utilisant l'API Python. Depuis tout, de la SA-Migrate manage.py à travers l'application elle-même, je ne rencontre pas de problèmes de chemin comme vous l'avez mentionné.

Vous ne savez pas si c'est un correctif «exact», mais cela peut peut-être aider.

+0

Super - J'aime cette approche car il est très simple de scripter le manage.py avec du tissu. Mais que définissez-vous pour la valeur 'repository' dans le fichier manage.py? En se référant à 'appname/migrations' ou '/usr/local/pylons/appname/env/lib/python2.6/site-packages/appname-05.egg/appname/migrations/', les deux échouent avec un fichier migrate.versioning .exceptions.InvalidRepositoryError –

+0

J'ai défini les migrations dans mon application et comme mon application est dans le chemin, je peux définir le référentiel à appname/migrations. – Rick

Questions connexes