Πώς μπορείτε να παρακολουθείτε τις αλλαγές της βάσης δεδομένων για τον έλεγχο πηγή;

ψήφοι
22

Χρησιμοποιούμε SQL Server 2000/2005 και Vault ή SVN για τα περισσότερα από τα έργα μας. Δεν έχω βρει μια αξιοπρεπή λύση για την καταγραφή αλλαγών της βάσης δεδομένων σχήμα / proc είτε σε σύστημα ελέγχου της πηγής.

τρέχουσα λύση μας είναι αρκετά περίπλοκη και δύσκολο να επιβληθεί (σενάριο το αντικείμενο αλλάζετε και να δεσμευτεί στη βάση δεδομένων).

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

Έτσι: πώς να παρακολουθείτε τις αλλαγές στον κώδικα της βάσης δεδομένων σας; Έχετε κάποια προτεινόμενα εργαλεία;


Επεξεργασία:

Ευχαριστώ για όλες τις προτάσεις. Λόγω του περιορισμένου χρόνου, θα προτιμούσα να μην κυλήσει το δικό μου εδώ. Και οι περισσότερες από τις προτάσεις που έχουν το ελάττωμα που απαιτούν την dev να ακολουθήσει κάποια διαδικασία.

Αντ 'αυτού, η ιδανική λύση θα ήταν να παρακολουθεί τον SQL βάσης δεδομένων για τις αλλαγές και προβαίνει σε ανιχνευθούν αλλαγές στο ΕΑΜ. Για παράδειγμα, αν ο SQL Server έχει ένα add-on που θα μπορούσε να καταγράφει κάθε αλλαγή DML με το χρήστη που έκανε την αλλαγή, τότε διαπράττουν το σενάριο αυτού του αντικειμένου για να ΕΑΜ, θα ήμουν ενθουσιασμένος.

Μιλήσαμε εσωτερικά περίπου δύο συστήματα: 1. Στο SQL 2005, χρησιμοποιήστε τα δικαιώματα αντικείμενο για να σας περιορίζουν από την αλλαγή ενός αντικειμένου, μέχρι να έκανε ένα «ταμείο». Στη συνέχεια, η διαδικασία checkin θα σενάριο το στο ΕΑΜ. 2. Εκτελέστε μια προγραμματισμένη εργασία για την ανίχνευση τυχόν αλλαγές και να δεσμευτούν τους (ανώνυμα) στο ΕΑΜ.

Θα ήταν ωραίο αν θα μπορούσα να παραλείψετε το μέρος του χρήστη δράσης και έχει το σύστημα να χειριστεί όλα αυτά αυτόματα.

Δημοσιεύθηκε 09/12/2008 στις 14:57
πηγή χρήστη
Σε άλλες γλώσσες...                            


14 απαντήσεις

ψήφοι
15

Χρησιμοποιήστε το Visual έκδοση της βάσης δεδομένων στούντιο για το σενάριο από τη βάση δεδομένων σας. Λειτουργεί σαν μια γοητεία και μπορείτε να χρησιμοποιήσετε οποιοδήποτε σύστημα ελέγχου Πηγή, βέβαια καλύτερα αν έχει VS plugins. Το εργαλείο αυτό έχει επίσης μια σειρά από άλλες χρήσιμες λειτουργίες. Ελέγξτε τους εδώ σε αυτό το μεγάλο post στο blog

http://www.vitalygorn.com/blog/post/2008/01/Handling-Database-easily-with-Visual-Studio-2008.aspx

ή να δείτε MSDN για την επίσημη τεκμηρίωση

Απαντήθηκε 09/12/2008 στις 15:03
πηγή χρήστη

ψήφοι
5

Παρακολούθηση αλλαγών της βάσης δεδομένων απευθείας από SSMS είναι δυνατή με τη χρήση διαφόρων εργαλείων 3rd party. ApexSQL Ελέγχου Πηγή αυτόματα σενάρια οποιοδήποτε αντικείμενο βάσης δεδομένων που περιλαμβάνεται στην εκδόσεων. Δεσμεύεται να μην μπορεί να πραγματοποιηθεί αυτόματα από το εργαλείο. Αντ 'αυτού, ο χρήστης πρέπει να επιλέξει ποια αλλαγές θα πρέπει να δεσμευτεί.

Όταν πάρει αλλαγές από μια αποθήκη, ApexSQL Ελέγχου Πηγή γνωρίζει μια αναφορική ακεραιότητα της βάσης δεδομένων SQL. Έτσι, θα δημιουργήσει μια σενάρια συγχρονισμού, συμπεριλαμβανομένων όλων των εξαρτημένων αντικειμένων που θα είναι τυλιγμένο σε συναλλαγές, ώστε, είτε όλες οι αλλαγές θα εφαρμοστούν σε περίπτωση που δεν προκύψει σφάλμα, ή καμία από τις επιλεγμένες αλλαγές εφαρμόζεται. Σε κάθε περίπτωση, η ακεραιότητα της βάσης δεδομένων παραμένει ανεπηρέαστη.

Απαντήθηκε 07/12/2017 στις 15:12
πηγή χρήστη

ψήφοι
5

Δεν έχω να πω πιστεύω ότι μια οπτική έργο βάσης δεδομένων στούντιο είναι επίσης μια λογική λύση στο δίλημμα ελέγχου προέλευσης. Αν είναι σωστά ρυθμισμένη μπορείτε να εκτελέσετε τις δέσμες ενεργειών με τη βάση δεδομένων από το IDE. Αν το σενάριο σας είναι παλιό, να πάρει την τελευταία, να τρέξει κατά της DB. Έχετε ένα σενάριο που αναπαριστά όλα τα αντικείμενα, καθώς και αν χρειάζεστε, νέα αντικείμενα θα πρέπει να προστεθεί στο σενάριο αυτό, καθώς και με το χέρι, αλλά μόνο μία φορά

Μου αρέσει κάθε τραπέζι, proc και λειτουργούν για να είναι σε δικό του αρχείο.

Απαντήθηκε 09/12/2008 στις 15:19
πηγή χρήστη

ψήφοι
3

λύση Ένας φτωχός άνθρωπος θα ήταν να προσθέσετε ένα προ-διαπράξει σενάριο γάντζο που χωματερές από την τελευταία σχήματος db σε ένα αρχείο και να έχουν αυτό το αρχείο δεσμευτεί να SVN repository σας, μαζί με τον κωδικό σας. Στη συνέχεια, μπορείτε να diff τα αρχεία db σχήματος από οποιαδήποτε αναθεώρηση.

Απαντήθηκε 09/12/2008 στις 15:01
πηγή χρήστη

ψήφοι
1

Στο περιβάλλον μας, δεν μπορούμε ποτέ να αλλάξετε το DB χειροκίνητα: όλες οι αλλαγές γίνονται από τα σενάρια σε χρόνο απελευθέρωσης, και τα σενάρια διατηρούνται στο σύστημα ελέγχου εκδόσεων. Ένα σημαντικό μέρος αυτής της διαδικασίας είναι να είμαστε σίγουροι ότι όλα τα σενάρια μπορεί να τρέξει και πάλι κατά τον ίδιο DB τα σενάρια idempotent;) χωρίς απώλεια δεδομένων. Για παράδειγμα, αν προσθέσετε μια στήλη, βεβαιωθείτε ότι έχετε κάνει τίποτα, αν η στήλη είναι ήδη εκεί.

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

Απαντήθηκε 09/12/2008 στις 17:32
πηγή χρήστη

ψήφοι
1

Τροχαίο τη δική σας από την αρχή δεν θα είναι πολύ εφικτό, αλλά αν χρησιμοποιήσετε ένα SQL εργαλείο σύγκρισης όπως Redgate SQL Συγκρίνετε SDK για τη δημιουργία αρχείων αλλαγή σας για σας δεν θα πάρει πολύ καιρό για να το μισό-roll ό, τι θέλετε και, στη συνέχεια, απλά δείτε αυτά τα αρχεία σε έλεγχο πηγή. Κύλησα κάτι παρόμοιο για τον εαυτό μου για να ενημερώσετε τις αλλαγές από την ανάπτυξη συστημάτων μας ζωντανά συστήματα μας μέσα σε λίγες ώρες.

Απαντήθηκε 09/12/2008 στις 15:34
πηγή χρήστη

ψήφοι
1

Σε SQL2000 παράγουν κάθε αντικείμενο στο δικό του αρχείο , στη συνέχεια, ελέγξτε όλα αυτά σε έλεγχο πηγή σας. Ας τον έλεγχο πηγή σας να χειριστεί το ιστορικό αλλαγών.

Στο SQL 2005, θα πρέπει να γράψετε ένα κομμάτι του κώδικα για να δημιουργήσει όλα τα αντικείμενα σε ξεχωριστά αρχεία.

Απαντήθηκε 09/12/2008 στις 15:04
πηγή χρήστη

Απαντήθηκε 09/12/2008 στις 15:03
πηγή χρήστη

ψήφοι
1

Απλά δεσμεύει την SQL-alter-Δήλωση επιπλέον την πλήρη SQL-createdb-δήλωση.

Απαντήθηκε 09/12/2008 στις 15:01
πηγή χρήστη

ψήφοι
0

Για να παρακολουθείτε όλες τις αλλαγές, όπως ενημέρωση εισαγωγή και διαγραφή εκεί θα είναι πολύ γενικά για το SVN. Είναι καλύτερα να παρακολουθείτε μόνο τις αλλαγές ddl σαν (να αλλάξει, πτώση, δημιουργούν), η οποία αλλάζει το σχήμα. Μπορείτε να το κάνετε αυτό Schema εντοπισμού εύκολα, δημιουργώντας ένα τραπέζι και μια trgger να εισάγετε δεδομένα σε αυτόν τον πίνακα. Κάθε φορά που θέλετε u μπορεί να πάρει την κατάσταση αλλαγής από την υποβολή ερωτήματος από το εν λόγω πίνακα Υπάρχουν πολλά παράδειγμα εδώ και εδώ

Απαντήθηκε 26/06/2012 στις 16:02
πηγή χρήστη

ψήφοι
0

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

Αν και αυτό το είδος της λύσης είναι σίγουρα υπερβολή για τα περισσότερα έργα, κάνει σίγουρα τη ζωή ευκολότερη κατά καιρούς.

Απαντήθηκε 18/09/2009 στις 19:15
πηγή χρήστη

ψήφοι
0

Εάν χρησιμοποιείτε Καθαρά και όπως και οι ράγες προσέγγιση λαμβάνει με Μεταναστεύσεις, τότε θα ήθελα να συστήσω Migrator.Net .

Βρήκα ένα ωραίο σεμινάριο που περπατά μέσα από τη σύσταση του οργανισμού στο Visual Studio. Παρέχει επίσης ένα δείγμα έργου για την αναφορά.

Απαντήθηκε 18/09/2009 στις 19:03
πηγή χρήστη

ψήφοι
0

Σε ένα έργο που διοργανώνονται από την ιδιαίτερη προσοχή στον σχεδιασμό που όλα τα σημαντικά δεδομένα στη βάση δεδομένων μπορεί να αναδημιουργηθεί αυτόματα από εξωτερικούς χώρους. Κατά την εκκίνηση η εφαρμογή δημιουργεί τη βάση δεδομένων αν λείπει, και συμπληρώνει ότι από εξωτερικές πηγές δεδομένων, χρησιμοποιώντας ένα σχήμα στο πηγαίο κώδικα της εφαρμογής (και, επομένως, εκδόσεων, με την εφαρμογή). Το όνομα κατάστημα της βάσης δεδομένων (μια SQLite όνομα αρχείου, αν και οι περισσότεροι διαχειριστές βάσεων δεδομένων επιτρέπει πολλαπλές βάσεις δεδομένων) περιλαμβάνει μια έκδοση σχήματος, και αυξάνουμε την έκδοση σχήμα κάθε φορά που διαπράττουν μια αλλαγή σχήματος. Αυτό σημαίνει ότι όταν κάνετε επανεκκίνηση της εφαρμογής σε μια νέα έκδοση με ένα διαφορετικό σχήμα που ένα νέο κατάστημα βάση δεδομένων δημιουργείται αυτόματα και κατοικείται. Σε περίπτωση που θα πρέπει να επανέλθει σε ανάπτυξη σε ένα παλιό σχήμα, τότε η νέα πορεία της παλαιάς μορφής θα πρέπει να χρησιμοποιούν το παλιό κατάστημα βάση δεδομένων, έτσι έχουμε την ευκαιρία να κάνουμε γρήγορα υποβαθμίσεις σε περίπτωση προβλήματος.

Ουσιαστικά, η βάση δεδομένων λειτουργεί σαν ένα παραδοσιακό σωρό εφαρμογή, με τα πλεονεκτήματα της επιμονής, της ασφάλειας των συναλλαγών, στατική πληκτρολόγηση (πρακτικό αφού χρησιμοποιήσετε την Python) και τη μοναδικότητά τους περιορισμούς. Ωστόσο, δεν ανησυχούμε καθόλου για τη διαγραφή της βάσης δεδομένων και ξεκινώντας πάνω, και οι άνθρωποι ξέρουν ότι αν δοκιμάσετε κάποια εγχειρίδιο αμυχή στη βάση δεδομένων, τότε θα πάρει επανήλθε στην επόμενη αποστολή, όπως και αμυχές μιας κατάστασης η διαδικασία θα πάρει επανήλθε κατά την επόμενη επανεκκίνηση.

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

Αυτή η προσέγγιση δεν θα λειτουργήσει αν κατασκευής της βάσης δεδομένων σας από τις εξωτερικές πηγές διαρκεί περισσότερο από ό, τι θα επιτρέψει στην εφαρμογή να παραμείνει κάτω.

Απαντήθηκε 15/12/2008 στις 14:14
πηγή χρήστη

ψήφοι
0

DBAS μας ελέγχει περιοδικά prod ενάντια σε αυτό που είναι στο SVN και να διαγράψετε όλα τα αντικείμενα που δεν υπό έλεγχο πηγή. Χρειάζεται μόνο μία φορά πριν από τις devlopers ποτέ δεν ξεχνάμε να βάλουμε κάτι στον έλεγχο πηγή και πάλι.

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

Απαντήθηκε 09/12/2008 στις 15:31
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more