Comment travaillez-vous sur les packages Oracle dans un environnement collaboratif, sous contrôle de version?

StackOverflow https://stackoverflow.com/questions/706026

  •  22-08-2019
  •  | 
  •  

Question

Je travaille dans un environnement multi-développeur Oracle avec un grand paquet. Nous avons DEV => TST => modèle de promotion PRD. À l'heure actuelle, toutes les modifications de l'emballage sont réalisées directement dans TOAD puis compilés dans le package DEV.

Nous courons en deux problèmes:

  1. changements simultanés doivent promouvoir des horaires différents. Par exemple, le développeur A fait un changement qui doit être promu demain tout développeur B travaille en même temps sur un changement qui ne sera pas promu pendant deux semaines. Quand vient le temps de la promotion, nous nous trouvons manuellement en commentant des choses qui n'est pas encore promu et décommentant puis après ... beurk !!!

  2. Si deux développeurs font des changements à la même heure exacte et l'un d'entre eux Compile, il efface les modifications de l'autre développeur. Il n'y a pas une fusion agréable; au lieu de la dernière compilation gagne.

Quelles stratégies recommanderiez-vous pour contourner cela? Nous utilisons TFS pour notre source de contrôle, mais pas encore utilisé avec nos packages Oracle.

PS Je l'ai vu cette annonce , mais il ne répond pas complètement à ma question.

Était-ce utile?

La solution

Nous utilisons Oracle Developer Tools pour Visual Studio.NET ... se branche directement dans TFS

Autres conseils

La clé est d'adopter une pratique que le code déploiement du système de contrôle de code source. Je ne suis pas familier avec MUT, mais il faut mettre en œuvre les concepts de branches, tags, etc. La question de ce qu'il faut déployer tombe alors sur la construction et la libération de marquage dans le système de contrôle de code source.

Conseils supplémentaires (pour Oracle):

  • il fonctionne mieux si vous divisez la spécification du package et le corps dans des fichiers différents qui utilisent un modèle de fichier cohérent pour chaque (par exemple « .pks » pour les spécifications de l'emballage, et « .pkb » pour le corps de l'emballage). Si vous utilisez un processus automatisé de construction qui peut traiter des modèles de fichiers que vous pouvez construire toutes les spécifications, puis les corps. Cela réduit également invalidations objet si vous ne déployez un corps de paquet.

  • mettre le temps pour configurer un processus automatisé de construction qui est entraîné à partir d'une libération ou de construire l'état de votre système de contrôle de code source. Si vous avez même un nombre modéré de code db objets il payer pour être en mesure de construire le code dans un système de référence et de le comparer à votre qa ou d'un système de production.

Voir ma réponse sur les outils pour travailler avec stockées procédures Oracle, dans une équipe (que je viens de retagged).

Bottom line: ne pas modifier les procédures directement avec TOAD. Stockez la source sous forme de fichiers, que vous stockerez dans le contrôle de la source, puis modifiez exécuter.

De plus, je recommande fortement que chaque développeur travaille sur sa propre copie de la base de données (utiliser Oracle Express, qui est gratuit). Vous pouvez le faire si vous stockez tous les scripts pour créer la base de données dans le contrôle de la source. Plus se trouve ici .

Pour éviter 2 développeurs travaillant sur le même paquet en même temps:

1) Utilisez votre système de contrôle de version comme la source du code de package. Pour travailler sur un paquet, le développeur doit d'abord vérifier le paquet de contrôle de version; personne ne peut vérifier le paquet jusqu'à ce que ce développeur vérifie avant.

2) Ne pas travailler directement sur le code de package dans Toad ou tout autre IDE. Vous avez aucune idée si le code que vous travaillez là-bas est correct ou a été modifié par un ou plusieurs autres développeurs. Les travaux sur le code dans le script que vous avez extrait du contrôle de version et exécuter que dans la base de données pour compiler le package. Ma préférence est d'utiliser un bon éditeur de texte (TextPad) et SQL Plus, mais vous pouvez le faire dans Toad aussi.

3) Lorsque vous avez terminé, revenez le script dans le contrôle de version. Ne pas copier et coller le code de la base de données dans votre script (voir point 2 à nouveau).

L'inconvénient (si elle est un) de cette approche contrôlée est qu'un seul développeur à la fois peut travailler sur un paquet. Cela ne devrait pas être un problème majeur tant que:

  • Vous gardez les paquets à une taille raisonnable (en termes de ce qu'ils font, pas combien de lignes de code ou le nombre de procédures en eux). Ne pas avoir un gros paquet qui contient tout le code.
  • Les développeurs sont invités à consulter le code que lorsque vous êtes prêt à travailler, et de le vérifier en arrière dès qu'ils ont fini de faire et de tester leurs modifications.

nous le faisons avec une base de données Dev pour chaque flux, et des étiquettes pour les différents cours d'eau.

Notre licence Oracle nous donne illimitée des instances dev / test, mais nous sommes un éditeur de logiciels, vous pouvez avoir une option de licence différente

Vous pouvez utiliser les outils de développement Oracle pour VS ou vous pouvez utiliser développeur sql. développeur SQL intègre avec Subversion et CVS et vous pouvez le télécharger gratuitement. Voir ici: http://www.oracle.com/technology /products/database/sql_developer/files/what_is_sqldev.html

Nous utilisons Toad pour Oracle avec le fournisseur TFS MSSCCI contre TFS 2008. Nous utilisons un de l'outil personnalisé qui tire base de données checkins de contrôle de code source et les conditionne pour la libération.

Pour mes connaissances Oracle Developer Tools pour Visual Studio.Net n'a pas de l'intégration de contrôle de code source réel avec TFS ou autrement.

Vous pourriez envisager Extensions crapaud Visual Studio si ce n'est pas pas cher, peut-être 4k $ Je pense.

Une autre option est Oracle Change Management Pack mais croyez nécessite l'édition Enterprise d'Oracle qui est beaucoup plus cher.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top