¿Qué metodologías de control de versiones ayudan a los equipos de personas a rastrear los cambios en el esquema de la base de datos?
mysql
version-control
schema
Toby
fuente
fuente
Respuestas:
Hace solo un par de minutos estaba comprobando esto: una tabla que debería existir en todos los proyectos con una base de datos , parece bastante simple de poner en práctica, échale un vistazo:
fuente
Creo que el mejor método es generar la base de datos como parte de su proceso de compilación . Mantenga todos los scripts en control de fuente con el resto del código, y todos serán responsables de sus propios entornos.
De lo contrario, RedGate tiene una herramienta para integrar el control de origen en SSMS y SQL Compare es útil para comparar / sincronizar esquemas de MS SQL Server. Visual Studio Database Edition también tiene una herramienta integrada de comparación de esquemas .
Otra pregunta SO me llevó a Migrator Dot Net, que voy a comenzar a investigar durante mi abundante tiempo libre. Parece un buen método, pero podría ser más una inversión de tiempo / gastos generales de lo que está dispuesto a hacer.
fuente
eiefai ya mencionó una tabla que debería existir en todos los proyectos con una base de datos . Esta es una gran publicación de blog, pero en mi opinión solo va en parte a una solución de trabajo para el control de revisión de la base de datos. Creo que cualquier intento de "responder" esta pregunta en el mundo real necesita considerar alguna otra información sobre VCS y bases de datos:
fuente
Creo que hay un par de ángulos diferentes para abordar esta pregunta. El ángulo de "herramienta primero", creo, variará según la plataforma y las preferencias personales. Caso en cuestión: estoy usando un proyecto de base de datos en MS Visual Studio, pero no estoy seguro de que sea una excelente solución para MySQL. También conozco personas que se venden bastante con sus herramientas favoritas de Redgate, Erwin, Embarcadero, etc.
También hay un ángulo de "primer proceso" para esta pregunta, que (con suerte) será revisado en este sitio en las preguntas posteriores. Las piedras angulares en este proceso son poner su esquema bajo control de origen y administrar los cambios de manera que pueda aplicar los cambios de esquema de la versión "x" a la versión "y" más o menos bajo demanda.
Una respuesta definitiva a este tema terminará pareciéndose a un libro, por lo que probablemente valga la pena comenzar haciendo referencia a uno: Redgate publicó recientemente un libro electrónico gratuito llamado " La guía de Red Gate para el desarrollo basado en equipo de SQL Server ", y aunque hay hay mucho para debatir, es un buen lugar para comenzar a debatir, en mi opinión. Contrariamente al nombre, gran parte del material de este libro es lo suficientemente general como para aplicarse a cualquier base de datos (no solo a SQL Server) y a cualquier conjunto de herramientas (no solo Redgate). Si aún no has visto esto, definitivamente vale la pena echar un vistazo, al menos.
Finalmente, probablemente valga la pena vincular en la "respuesta heredada" de stackoverflow .
fuente
SchemaCrawler es mi herramienta para producir un archivo de texto con todos los objetos de esquema de base de datos. Diseñé esta salida de texto para que sea legible por humanos, así como diferible frente a una salida similar de otro servidor.
En la práctica, lo que he encontrado es que generar un archivo de texto del esquema de la base de datos es útil cuando se hace como parte de la compilación. De esta manera, puede verificar el archivo de texto en su sistema de control de código fuente y tener un historial de versiones de cómo ha evolucionado su esquema con el tiempo. SchemaCrawler está diseñado para automatizar esto también, desde la línea de comandos.
fuente