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

 

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

Αλλαγή σε βάση που ήδη είναι σε παραγωγή!

Îåêßíçóå áðü ôï ìÝëïò Τάσκος Γιώργος. Τελευταία δημοσίευση από το μέλος Τάσκος Γιώργος στις 14-04-2009, 13:15. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  13-04-2009, 20:45 50065

    Αλλαγή σε βάση που ήδη είναι σε παραγωγή!

    Καλησπέρα,

    Έτυχε τελευταία να θέλω να αλλάξω μια βάση που είχα κάνει για λογαριασμό κάποιας μικρής εφαρμογής.
    Συγκεκριμένα, έχω ένα πίνακα ο οποιός έχει κάποια πεδία NotNull, και επίσης 2-3 Unique_Keys.

    Έπρεπε όμως (γιατί απλά κάποιος άλλαξε γνώμη αργότερα), κάποια πεδία NotNull να μπορούν να δέχονται
    και τιμές Null, αλλά και να φύγουν 1-2 Unique_Keys. Η βάση είναι attached as σε SQL Server 2005 Express.

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

    Το περίεργο είναι ότι τα αποεπέλεξα κάνοντας στον Server Explorer του VS 2008 ένα connection
    στην βάση και ανοιγοντάς την μέσα στο VS με άφησε κανονικά.

    Στο developing pc (δικό μου), έχω SQL Server 2008. Τώρα, στο production environment δεν έχει φυσικά VS :P,
    μήπως μπορεί κάποιος να μου ρίξει λίγο φώς για να δώ πως θα γίνει η δουλειά που ήθελα να κάνω εξαρχής μέσα
    από το SQL Server Management Studio? Η βάση φυσικά έχει στοιχεία μέσα.

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

    Απαντήσεις δεκτές :P ..

  •  14-04-2009, 11:40 50083 σε απάντηση της 50065

    Απ: Αλλαγή σε βάση που ήδη είναι σε παραγωγή!

    Τι να πω..... Αν κάποιος γνωρίζει τη λύση, ας το γράψει.


    "Μη σταματάς να αναζητάς αυτό που αγαπάς, ειδάλλως θα καταλήξεις να αγαπάς ό,τι βρίσκεις." (Αγνώστου)
  •  14-04-2009, 12:05 50084 σε απάντηση της 50065

    Απ: Αλλαγή σε βάση που ήδη είναι σε παραγωγή!

    Τί εννοείς δεν σε άφηνε? Εμφάνιζε κάποιο error? Ποιό είναι αυτό? Αν υπάρχει error, δεν έχει καμμία σημασία τί έκανες στο Visual Studio, το πρόβλημα θα εμφανιστεί ξανά. Επίσης, τί Management Studio χρησιμοποιείς? Το κανονικό ή το Express?

    Από εκεί και πέρα, ο ευκολότερος τρόπος να κάνεις αλλαγές είναι να φτιάξεις ένα script με τα ALTER TABLE που θέλεις και να τα τρέξεις και στην παραγωγή, αφού πρώτα πάρεις backup. To Management Studio σε βοηθάει σε αυτό καθώς σε κάθε dialog box εμφανίζεται και ένα κουμπί "Script this" το οποίο σου φτιάχνει το statement που εκτελεί την ίδια λειτουργία με το dialog box.

    ΣΕ ΚΑΜΜΙΑ περίπτωση δεν πρέπει να ρίξεις άλλη βάση πάνω από την παραγωγή, ή να πειράξεις τη βάση σε άλλο μηχάνημα και να την "φέρεις πίσω". Πάντα υπάρχουν είτε χρήστες συνδεδεμένοι, είτε εφαρμογές που χρησιμοποιούν τη βάση, jobs που μπορεί να τρέχουν στη βάση ή στην εφαρμογή. Όσο εσύ θα πειράζεις την κόπια της βάσης, κάτι, κάποιος, μπορεί να κάνει αλλαγές οι οποίες θα χαθούν αν κάνεις restore την πειραγμένη βάση.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  14-04-2009, 13:15 50087 σε απάντηση της 50084

    Απ: Αλλαγή σε βάση που ήδη είναι σε παραγωγή!

    Ευχαριστώ Παναγιώτη, αυτή ακριβώς είναι η λύση.
    Κάνεις SQL Script με τις αλλαγές ALTER TABLE,COLUMN κτλ.
    Απλά δεν σε αφήνει "in design" να κάνεις τέτοιου είδους αλλαγές, και να σώσεις τον πίνακα πίσω.

    Μπορείς να κάνεις όμως τις αλλαγές που θέλεις και να κάνεις Generate script, για ότι σου δείχνει το dialog box.

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