Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Source control και βάσεις δεδομένων - Δουλεύοντας ομαδικά

Îåêßíçóå áðü ôï ìÝëïò sakis_drm. Τελευταία δημοσίευση από το μέλος sakis_drm στις 03-06-2009, 23:43. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  02-06-2009, 22:07 51247

    Source control και βάσεις δεδομένων - Δουλεύοντας ομαδικά

    • Όσον ανφορά τη βάση δεδομένων έστω ότι είναι σε sql server..  τι γίνεται με τη συντήρηση αυτής? Αυτή λογικά δεν είναι ενσωματωμένη στο svn.
    • Απλά κρατιέται ένα backup της με version name και μοιράζεται σε κάποιον ftp?
    • Πως μπορεί μια ομαδα να δουλέψει και να ξέρει ότι όταν κάνει synchronize τον κώδικα από το svn και έχει την τάδε βάση ότι είναι οκ?
    • Επίσης οι αλλαγές που κάνει κάποιος προγραμματιστής στη βάση που κατεβάζει τοπικά, πως περνάνε στην πρότυπη βάση που είναι π.χ. στον ftp? Αν την ίδια στιγμή είχε κάνει και κάποιος άλλος προγραμματιστής αλλαγές στη βάση, όταν την ανεβάσει δεν θα έχει και τις αλλαγές του πρώτου..

    Δημοσίευση στην κατηγορία:
  •  02-06-2009, 23:40 51248 σε απάντηση της 51247

    Απ: Re: Απ: Source control - διαχείριση προσωρινών αλλαγών

    Ο τρόπος που συνιστώ εγώ είναι να κρατάς την βάση σου σε sql αρχεία στο source control σου, όπως κάνεις και για τα υπόλοιπα αρχεία κώδικα. Μπορείς να έχεις και ένα batch file το οποίο θα τρέξει αυτά τα sql αρχεία και θα δημιουργεί την βάση στον υπολογιστή του κάθε developer. Μπορείς επίσης να έχεις και ένα sql αρχείο με sample data.

    Σε αυτό βοηθάει και το visual studio με τα database projects ή τα sql server projects. Διάβασε π.χ. αυτό http://www.codinghorror.com/blog/archives/000743.html.

    Με αυτό τον τρόπο έχεις και το πλεονέκτημα ότι η εξέλιση του σχήματος της βάσης σου είναι πλέον αντικείμενο versioning. Οπότε αν θέλεις να γυρίσεις κάποια στιγμή τον κώδικά σου σε ένα προγενέστερο σημείο, μπορείς να είσαι σίγουρος ότι εκεί θα βρεις και την αντίστοιχη βάση όπως ήταν τότε. Το ίδιο αν αποφασίσεις να κάνεις ένα branch.

    edited: Έσπασα το ερώτημα σε ξεχωριστή συζήτηση καθώς δεν σχετιζόταν άμεσα με το αρχικό θέμα κάτω από το οποίο δημοσιεύτηκε.


    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  03-06-2009, 09:17 51255 σε απάντηση της 51247

    Απ: Source control και βάσεις δεδομένων - Δουλεύοντας ομαδικά

    Επίσης να προσθέσω ότι ο χρήστης που θα κάνει αλλαγές στην πρότυπη βάση θα είναι ένας. Δηλαδή αν διάφορα μέλη της ομάδας κανουν τοπικά αλλαγές δεν πάνε βουρ να ενημερώσουν την κύρια βάση αλλά φτιάχνουν scriptakia και τα παραδίδουν στον υπεύθυνο βάσης που κάνει τις αλλαγές. (Μάλιστα το όνομα του Script και ένας αύξων αριθμός καλό είναι να κρατείται σε ένα πίνακα στην ίδια βάση). Έτσι όλοι είναι πιο υπεύθυνοι και πιο aware για τις αλλαγές που κάνουν στην βάση.

    Το ίδιο άτομο θα είναι επιφορτισμένο με τον ρόλο του να βγάζει το τελικό Script αναβάθμισης συγκρίνοντας πρότυπη και production βάση. 
    Ο ρόλος του Database manager Μπορεί να εναλλάσεται μεταξύ των μελών της ομάδας περιοδικά ώστε να υπάρχει η τεχνογνωσία των διαδικασιών σε περιπτώσεις απωλειών, διακοπών, αδειών κλπ.

    Φανταστείτε να έχετε 1000 βάσεις εγκατεστημένες σε πελάτες και να μην στείλετε σωστά μια αλλαγή επειδή δεν συννενοήθηκαν τα μέλη της Dev Team. 

    Το σύνηθες σενάριο που έχω δει πολλές φορές να γίνεται επειδή δεν παρακολουθείται η παραπάνω διαδικασία είναι να μην είμαστε σίγουρα πια βάση έχει τις σωστές αλλαγές και να ξεκινάνε τα Compare μέχρι τελικής πτώσεως.

    Manos
  •  03-06-2009, 23:43 51289 σε απάντηση της 51248

    Απ: Re: Απ: Source control - διαχείριση προσωρινών αλλαγών

    Dimitris Papadimitriou:

    Ο τρόπος που συνιστώ εγώ είναι να κρατάς την βάση σου σε sql αρχεία στο source control σου.



    Αυτό σημαίνει πως και την υλοποίηση της βάσης πρέπει να την κάνεις γράφοντας διαρκώς DDL scripts για κάθε issue?
    και άρα να χάνεις τις λειτουργίες και τις ευκολίες του γραφικού περιβάλλοντος για την δημιουργία και επέκταση της database?

    "At a certain level, if you really want your database under TRUE version control inside of a repeatable process, everything needs to be in scripts. AFAIK, there's no easy way to point-and-click your way to a version-controlled database. You have to use DDL
    "

    Ή μπορείς να κάνεις την υλοποίηση από το γραφικό περιβάλλον και μετά πριν κάνεις commit,
      να συγκρίνεις την βάση (με Red Gate) που έφτιαξες, με αυτή που είχες πάρει αρχικά...
    Πάντα βέβαια δε μπορεί να εγγυηθεί κανένας ότι το script μετά θα παίξει 100%
    π.χ. όταν έρθει η ώρα για τη δημιουργία του release script μπορεί να συγκρούεται με κάποιο από ένα άλλο commit.

    Η διαδικασία της να λαμβάνεται backup της βάσης και να δημοσιεύεται σε έναν ftp είναι τελείως άκυρη?
    Εχει παίξει ποτέ κανείς έτσι? ή είναι τελείως βάσανο?
    Ξέρουμε τα υπόλοιπα μειονεκτήματα πλήν του μεγαλύτερου απαιτούμενου χώρου για να μπορείς να κρατάς versioning, και το ότι θα έχεις τα recources και την model db σε διαφορετικά σημεία?

    Δημοσίευση στην κατηγορία: ,
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems