Jul 19, 2011

Κάνοντας tag κώδικα Java και PL/SQL στο Subversion

Δεν είναι λίγα τα Java projects που κάνουν ανάπτυξη και σε PL/SQL κώδικα. Ενώ όμως η τήρηση version control είναι εξαιρετικά απλή υπόθεση στον κόσμο της Java (πχ μέσω του Subversion), το ίδιο δεν ισχύει για την PL/SQL μιας και τα εξειδικευμένα SCM συστήματα είναι είτε εξαιρετικά πολύπλοκα είτε ακριβά. Είτε για λόγους καθημερινού backup, είτε για version tagging και releasing, είναι απαραίτητο να κρατάμε συγχρονισμένους τους κώδικες Java και PL/SQL σε ένα κεντρικό σημείο.

Ένα χρήσιμο εργαλείο που επιτρέπει την εξαγωγή metadata από μια Oracle βάση δεδομένων είναι το jipes (http://sourceforge.net/projects/jipes/) Πρόκειται για μια Java εφαρμογή που μπορεί να χρησιμοποιηθεί είτε standalone είτε μέσω ενός ANT task ώστε ρωτώντας το dictionary της Oracle, να μπορεί να αποθηκεύσει όλους τους ορισμούς των αντικειμένων ενός σχήματος (πχ πίνακες, indexes, packages, κλπ) σε μια δομή καταλόγων. Ένα παράδειγμα χρήσης:

java com.jipes.cm.Builder -m export -s jdbc:oracle:thin:@dbserver:1521:ora -sU schema -sP schema_passwd -schema schema

Μετά θα δημιουργηθούν οι εξής κατάλογοι που θα περιέχουν τα metadata της βάσης μας:

index/
package/
package-body/
procedure/
table/

view/

Εξίσου εύκολη και η χρήση του μέσω ANT. Τα αποτελέσματα μπορούν να γίνουν zip και αμέσως μετά commit και tag στο Subversion ώστε να τα σώσουμε μαζί με τους Java κώδικες.

<taskdef name="jipes-cm" classname="com.jipes.cm.ant.BuildTask"> <classpath> <path location="${project.basedir}/jipes-cm-alldep" /> </classpath> </taskdef> <jipes-cm buildMode="export" sourceURL="${datasource.url}" sourceUser="${datasource.user}" sourcePass="${datasource.pass}" directory="${build.sql.dir}/export" schemaFilter="${datasource.user}"> </jipes-cm>

No comments: