Domanda

In questo momento, ho codice che crea il database (solo alcuni creare query su un database SQLite) nella mia classe di accesso al database principale. Questo sembra inutile, in quanto non ho alcuna intenzione di utilizzare il codice. Vorrei solo bisogno se qualcosa è andato storto e avevo bisogno di ricreare il database. Dovrei ...

  1. Lascia le cose come sono, anche se il codice di creazione del database è circa un quarto della mia dimensione del file.
  2. Spostare il codice del database di creazione di uno script separato. E 'probabile che io sia in esecuzione manualmente se mai bisogno di correre di nuovo in ogni caso, e che avrebbe messo out-of-sight-out-of-mente mentre si lavora sul codice principale.
  3. Elimina il codice del database di creazione e si basano sul controllo di revisione se mai trovo a dover di nuovo.
È stato utile?

Soluzione

Credo che sia meglio mantenere il codice. Ancora più importante, si dovrebbe mantenere questo codice (o generarlo) ogni volta che le modifiche dello schema del database.

E 'importante per i seguenti motivi.

  1. Probabilmente sarete sorpresi di quante volte avete bisogno. Se è necessario eseguire la migrazione del server o un altro ambiente di configurazione (ad esempio TEST o DEMO), e così via.
  2. Trovo anche che mi riferisco al DDL SQL molto spesso quando si scrive codice, in particolare se non ho toccato il sistema per un po '.
  3. Hai un riferimento per le decisioni che hai fatto, come ad esempio gli indici creati, chiavi univoche, etc etc.

Se non si dispone di un approccio disciplinato a questo, ho trovato che lo schema del database può modificarsi nel tempo man mano che vengono apportate modifiche ad hoc, e questo può causare problemi oscuri che non si trovano fino a colpire il database. Ancora peggio, senza un approccio disciplinato (vale a dire una definizione di riferimento dello schema) si possono trovare che i database diversi hanno schema sottilmente diverso.

Altri suggerimenti

  

I sarebbe solo bisogno se qualcosa è andato   sbagliato e avevo bisogno di ricreare la   banca dati.

Ricreare il database non è assolutamente un caso eccezionale. Questo codice fa parte del vostro processo di distribuzione su un nuovo sistema / diverso, e rappresenta la struttura DB tuoi aspetta di codice con cui lavorare. Si dovrebbe effettivamente avere test di integrazione che lo confermano. Lavorare a tempo indeterminato con un singolo server DB cui schema è stato creato in modo incrementale tramite spedito manualmente le istruzioni SQL durante lo sviluppo è non qualcosa che si dovrebbe fare affidamento su.

Ma sì, dovrebbe essere separato dal codice di accesso; quindi l'opzione 2 è corretto. Lo script separata può quindi essere utilizzato per test, nonché per la distribuzione.

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