Pregunta

En este momento, no tengo código que crea la base de datos (sólo algunas crear consultas en una base de datos SQLite) en mi clase principal de acceso de base de datos. Esto parece innecesario, ya que no tengo ninguna intención de utilizar este código. Yo sólo lo necesitaría si algo salió mal y tenía que volver a crear la base de datos. ¿Debo ...

  1. Dejar las cosas como están, a pesar de que el código de creación de base de datos es aproximadamente una cuarta parte de mi tamaño del archivo.
  2. Mover el código base de datos de creación de una secuencia de comandos independiente. Es probable que le ejecuta manualmente si alguna vez tengo que ejecutarla de nuevo de todos modos, y que lo pondría fuera de la vista, fuera de la mente mientras se trabaja en el código principal.
  3. Borrar el código base de datos de creación y se basan en el control de revisión si alguna vez encuentro que necesitan de nuevo.
¿Fue útil?

Solución

Creo que lo mejor es mantener el código. Aún más importante, usted debe mantener este código (o generarlo) cada vez que los cambios en el esquema de base de datos.

Es importante por las siguientes razones.

  1. Es probable que se sorprenderá de la cantidad de veces que lo necesite. Si necesita migrar su servidor, o la configuración de otro entorno (por ejemplo, PRUEBA o DEMO), y así sucesivamente.
  2. También encuentro que me refiero a la DDL de SQL con bastante frecuencia al codificar, sobre todo si no he tocado el sistema durante un tiempo.
  3. Usted tiene una referencia para las decisiones que tomó, como los índices que ha creado, claves únicas, etc, etc.

Si usted no tiene un enfoque disciplinado para esto, he encontrado que el esquema de base de datos puede variar con el tiempo a medida que se realizan cambios ad-hoc, y esto puede causar problemas oscuros que no se encuentran hasta llegar a la base de datos. Lo que es peor, sin un enfoque disciplinado (es decir, una definición de referencia del esquema) es posible que las diferentes bases de datos tienen sutilmente diferente esquema.

Otros consejos

  

me gustaría simplemente que si algo iba a necesitar   mal y que tenía que volver a crear la   base de datos.

La recreación de la base de datos no es en absoluto un caso excepcional. Ese código es parte de su proceso de implementación de un nuevo sistema / diferente, y representa la estructura DB sus Espera código para trabajar con. En realidad se debe tener pruebas de integración que confirman esto. Trabajando de forma indefinida con un único servidor de base de datos cuyo esquema se creó de forma incremental a través de enviados manualmente las sentencias SQL durante el desarrollo es no algo que debe confiar.

Pero sí, debe ser separado del código de acceso; por lo que la opción 2 es la correcta. La secuencia de comandos separado puede entonces ser utilizado por las pruebas, así como para el despliegue.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top