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

 

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

Στρατηγική Updates...

Îåêßíçóå áðü ôï ìÝëïò Panos Kousidis. Τελευταία δημοσίευση από το μέλος Thiseas στις 30-05-2007, 12:34. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  21-05-2007, 17:50 32058

    Στρατηγική Updates...

    Φτιάχνω ένα πρόγραμμα από το οποίο σχεδόν το μισό μόνο είναι σε visual studio και το άλλο μισό είναι σε stored procedures και functions σε SQL Server.
    Όποτε αλλάζω κάτι στον κώδικα του studio, οκ δίνω το update στους πελάτες και όλα ωραία και καλά. Το πρόβλημα όμως είναι όταν προσθέτω/αλλάζω procedures και functions δε μπορώ να ενημερώνω εύκολα τις βάσεις των πελατών και πρέπει να κάθομαι να σημειώνω τι πείραξα κάθε φορά. Υπάρχει κάποιος τρόπος να μου βγάζει σε script ο sql τις αλλαγές που έχω κάνει από ένα σημείο και μετά;

    Panos
  •  21-05-2007, 18:00 32059 σε απάντηση της 32058

    Απ: Στρατηγική Updates...

    Υπάρχουν διάφοροι τρόποι για να γίνει αυτό.

    1. Ένας είναι να χρησιμοποιείς την επιλογή save change script που έχει ο sql server. Αν π.χ. ανοίξεις το design ενός πίνακα και πειράξεις κάτι, δίπλα στο πλήκτρο αποθήκευσης υπάρχει ένα πλήκτρο που λέγεται 'change script' που περιέχει το script αλλαγών.
    2. Ένας δεύτερος είναι να χρησιμοποιήσεις ένα εργαλείο όπως το sql compare της red gate. Θα κρατάς ένα αντίγραφο της προηγούμενης έκδοσης της βάσης σου και θα χρησιμοποιείς το sql compare για να βρεις τις διαφορές μεταξύ προηγούμενης έκδοσης και της έκδοσης που κάνεις development.
    3. Τρίτος τρόπος είναι να χρησιμοποιείς κάποιο ER εργαλείο με το οποίο να κάνεις τις αλλαγές αντί να τις κάνεις απευθείας στη βάση. Αυτό θα παράγει τα script αλλαγών.
    4. Τέταρτος τρόπος, σε περίπτωση που είσαι αρκετά καλός στην sql, είναι να γράφεις μόνος σου τα script αλλαγών και να μην χρησιμοποιείς κάποιο εργαλείο. Είναι πιο δύσκολο, κουραστικό αλλά σου δίνει την αίσθηση του ελέγχου.

    Σε κάθε περίπτωση πρέπει να προσέξεις και τα εξής:

    1. Επειδή οι πελάτες σου δεν θα έχουν όλοι την ίδια έκδοση θα πρέπει να εκτελείς τμηματικά αυτά τα scripts. Καλό είναι να βάλεις ένα dummy πίνακα DBVersion με ένα dummy field DBVersion και να κρατάς εκεί ένα αριθμό που θα δείχνει σε ποια έκδοση βρίσκεται η βάση.
    2. Μπορεί να χρειάζονται αλλαγές και σε δεδομένα της βάσης, εκτός από το σχήμα, οπότε θα πρέπει να προσθέτεις στα scripts σου και insert/update/delete statements γι αυτά. 

    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  21-05-2007, 19:17 32063 σε απάντηση της 32059

    Απ: Στρατηγική Updates...

    Ευχαριστώ πολύ για την αναλυτική σου απάντηση

    Panos
  •  30-05-2007, 12:34 32345 σε απάντηση της 32063

    Απ: Στρατηγική Updates...

    Όχι πια 3-tier, N-tier και σε "πείσμα" όλων των συγγραφέων του κόσμου!!Smile  εμείς έχουμε διαπιστώσει οτι η μεθοδολογία (2-tier, thin-client και business logic στην βάση - σε SPs ) είναι από πλευράς perfomance η καλύτερη δυνατή....
    Όσο αφορά στα tables η απάντηση του Δημήτρη ήτανε... αδιαμφισβήτητη....

    Τώρα... αυτό που κάνουμε εμείς όταν αλλάζουμε stored procedure(s) είναι το εξής:
    Εφόσων τελειώσουμε και αποθηκεύσουμε την procedure  πηγαίνουμε στο SEM (Sql Enterprice Manager).
    Επιλέγουμε την / τις procedure(s) που αλλάξανε και πατάμε right click και All Tasks > Generate SQL Scripts
    Στο παράθυρο που θα ανοίξει αφήνουμε τις default επιλογές και επιπρόσθετα επιλέρουμε:
    Στο Formating Tab:
    Check to "Only Script 7.0 compatible features" για να μην έχουμε προβλήματα με το collation των υπάρχοντων πελατών μας.
    Στο ΟptionsTab:
    Στο Group: File to Generate επιλέγουμε αν θέλουμε 1 ή πολλά sciptakia!!

    Happy Coding


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