2010-10-18 31 views
0

Je lance mon script de construction et je dois me souvenir de la base de données SQL et des scripts PL/SQL à exécuter chaque fois que je déploie mon application. Comment puis-je inclure ces correctifs dans mon script de build? Ou est-ce que tout le monde les exécute manuellement? Actuellement, je numérote mes correctifs, donc je connais l'ordre de les exécuter, mais parfois je dois vérifier l'historique SVN pour savoir à partir de quel numéro commencer. J'utilise PHP mais je peux utiliser Java dans ma solution à ce problème.Comment puis-je inclure des modifications de base de données (correctifs DDL, insertions de données ponctuelles, etc.) dans mon processus de construction?

Répondre

1

liquibase pourrait résoudre ce problème pour vous qui intègre fourmi ou Maven, mais peut être démarré de la ligne cmd trop

1

Vous devriez être enregistrer vos modifications que les scripts et les mettre dans le contrôle des sources comme le reste de votre code. Ensuite, vous savez quels changements appartiennent à quelle construction et doivent être promus à prod.

+0

+1. Je fais ensuite: 'trunk/Database/Patches/0.9.2 à 0.9.3/x_table.sql' – abatishchev

+0

Je mets les scripts dans le contrôle de la source, mais je n'ai pas trouvé un moyen satisfaisant de garder une trace de ceux qui ont couru et qui ne pas avoir. Je suppose que les mettre dans les noms de dossier de version d'application comme abatischev suggère est une option, mais a toujours un composant manuel. –

+0

Je me demande si vous utilisez une propriété étendue pour stocker la version d'un objet et la tester avant de pousser un changement? Ou est-ce qu'une solution ne devrait idéalement pas toucher la base de données? –

0

Puisque vous utilisez PHP phing/DbDeployTask serait un choix judicieux. Pour chaque table DB, vous aurez un fichier de démarrage et un certain nombre de correctifs, .: par exemple

001 user.sql 
002 project.sql 
501 user-AddColumnAvatar.sql 

etc.