Frage

Im Moment habe ich Code, der die Datenbank (nur wenige Erstellen von Abfragen auf einer SQLite-Datenbank) in meiner Haupt-Datenbankzugriff-Klasse erstellt. Dies scheint nicht notwendig, da ich nicht die Absicht haben, jemals mit dem Code. Ich würde es nur brauchen, wenn etwas schief gelaufen ist und ich brauchte die Datenbank neu zu erstellen. Should I ...

  1. Lassen Sie die Dinge, wie sie sind, auch wenn die Erstellung der Datenbank-Code ist etwa ein Viertel meiner Dateigröße.
  2. Verschieben Sie die Datenbank-Erstellungscode in ein separates Skript. Es ist wahrscheinlich werde ich es manuell ausgeführt werden, wenn ich es jemals sowieso wieder ausführen muß, und dass es löscht-of-sight-out-of-mind, während auf dem Haupt-Code zu arbeiten.
  3. Löschen Sie die Datenbank-Erstellungscode und stützen sich auf Revisionskontrolle, wenn ich mich jemals wieder benötigen finden.
War es hilfreich?

Lösung

Ich denke, es am besten ist, den Code zu halten. Noch wichtiger ist, sollten Sie diesen Code halten (oder es generieren) jedes Mal die Datenbankschemaänderungen.

Es ist wichtig, aus den folgenden Gründen.

  1. Sie werden wahrscheinlich überrascht sein, wie oft Sie es benötigen. Wenn Sie Ihren Server migrieren, oder Setup eine andere Umgebung (zum Beispiel TEST oder DEMO), und so weiter.
  2. Ich finde auch, dass ich in die DDL SQL beziehen sich oft bei der Codierung, vor allem, wenn ich das System nicht für eine Weile berührt haben.
  3. Sie haben eine Referenz für die Entscheidungen, die Sie gemacht, wie die Indizes, die Sie erstellt haben, eindeutige Schlüssel, etc etc.

Wenn Sie nicht über einen disziplinierten Ansatz dazu haben, habe ich festgestellt, dass das Datenbankschema Zeit driften kann als Ad-hoc-Änderungen vorgenommen werden, und dies kann obskure Probleme verursachen, die nicht gefunden werden, bis Sie die Datenbank getroffen. Noch schlimmer ist, ohne einen disziplinierten Ansatz (das heißt eine Referenzdefinition des Schemas) Sie feststellen, dass verschiedene Datenbanken auf subtile Weise anders Schema finden kann.

Andere Tipps

  

Ich würde es nur brauchen, wenn etwas schief   falsch und ich brauchte die neu   Datenbank.

die Datenbank Recreating ist absolut kein Ausnahmefall. Dieser Code ist Teil des Bereitstellungsprozesses an einem neuen / anderen System, und stellt die DB-Struktur des Code erwartet, um die Arbeit mit. Sie sollten eigentlich Integrationstests haben, die dies bestätigen. auf unbestimmte Zeit mit einem einzigen DB-Server, dessen Schema Arbeiten wurde schrittweise erstellt über manuell während der Entwicklung von SQL-Anweisungen geschickt ist nicht etwas, das Sie verlassen soll.

Aber ja, sollte es von dem Zugangscode getrennt werden; so Option 2 korrekt. Das separate Skript kann dann durch Tests verwendet werden, sowie für die Bereitstellung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top