Domanda

I nostri clienti utilizzano database SQLServer / Oracle. Nel corso degli anni, abbiamo inviato loro molti script di aggiornamento che dovevano essere eseguiti manualmente. Il più delle volte, tutto è andato liscio, ma ogni tanto uno script non veniva eseguito completamente fino alla fine o presentava alcuni errori (che non sono stati rilevati al momento dell'aggiornamento). Inoltre, a volte anche "gli utenti intelligenti" ha aggiunto indici / tabelle in quei database stessi, per qualsiasi motivo. Successivamente, tali irregolarità portano a problemi.

Ora mi è stato assegnato il compito di trovare un modo per verificare / validare i database dei nostri clienti rispetto al nostro schema di database (tabelle, tipi di dati, indici, viste, ...). L'output dovrebbe essere una sorta di file di differenza che indica cosa manca / cosa non dovrebbe essere nel database. Potrei farlo nel codice (C ++) dall'interno della nostra applicazione o posso creare uno strumento esterno solo per questo scopo.

Ora, prima di iniziare a scrivere codice, volevo chiedere se esiste già uno strumento in grado di produrre i risultati necessari o che almeno mi potrebbe aiutare a produrre un file XML decente dai nostri database master (Oracle e SQLServer) ? O c'è una biblioteca che potrebbe aiutarmi a scrivere il mio strumento?

È stato utile?

Soluzione

Ho usato questa tecnica prima e non richiede l'acquisto di strumenti.

Enterprise Manager ha un " Crea script " caratteristica. Eseguire ciò sul database di riferimento e sul database di confronto. Seleziona le opzioni appropriate per generare script per gli oggetti a cui tieni. Successivamente, confronta i due file generati con il tuo strumento diff preferito.

Puoi eseguire una procedura simile con gli strumenti Oracle che ti consentono di esportare gli script DDL.

Altri suggerimenti

Ci sono tre opzioni usando gli strumenti di Red Gate:

  1. Chiedi al tuo client di eseguire il confronto. Dovresti convincere il tuo i clienti ad acquistare una licenza di SQL Confronta e invia loro uno schema istantanea del tuo database.
  2. Scrivi una tua applicazione usando Red SDK di confronto SQL di Gate ($ 595 per 10 distribuzioni) che possono essere eseguite nel sito del cliente.
  3. Chiedi al tuo cliente di inviarti un'istantanea dello schema e esegui tu stesso il confronto usando il tuo copia di SQL Compare. Red Gate fornisce uno strumento di snapshot dello schema gratuito chiamato SQL Snapper che creerà istantanee che possono quindi essere inviate via e-mail dal tuo cliente. Poiché ciò non include alcun dato, potrebbe essere qualcosa che il tuo cliente è disposto a prendere in considerazione.

Lo strumento SQL Snapper e il codice di esempio SQL Comparison SDK possono essere scaricati dal nostro sito Web labs.red-gate.com.

La compatibilità Oracle è ora disponibile sotto forma di build con accesso anticipato. Se sei interessato o desideri provare lo strumento visita la pagina del prodotto . Puoi usarlo gratuitamente fino al rilascio completo dello strumento.

David Atkinson, Product Manager, Red Gate Software.

Usiamo Redgate SQL Compare per questo e ci è servito bene nel corso degli anni.

Utilizziamo anche Redgate SQL Data Compare per confrontare il contenuto delle tabelle di ricerca.

Le persone di redgate hanno un ottimo strumento chiamato SQL Compare .

Puoi creare un dump dello schema come MySQL SHOW CREA TAVOLI ?

Se sei su Windoze, ho usato Advanced Query Tool per anni e posso attestare che, per i soldi, fa più di ogni altra cosa. In particolare, genererà un rapporto diff tra i database. È ODBC / VB6 e può essere eseguito su dozzine di database. Controlla. (No, non sono di QueryTool né ne possiedo alcuna parte, solo un cliente felice.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top