2008-11-01 30 views
39

¿Conoce alguna aplicación para sincronizar dos bases de datos? Durante el desarrollo, a veces es necesario agregar una o dos filas de tabla o una nueva tabla o columna. Normalmente escribo cada instrucción sql en algún archivo y durante la carga de la ruta, sigo esas líneas en mi base de datos de producción (anteriormente la hice una copia de seguridad). Trabajo con bases de datos mySQL y postreSQL.Cómo sincronizar la base de datos de desarrollo y producción

¿Cuál es su práctica y qué aplicaciones lo ayudan en eso?

+0

He añadido una recompensa. Necesito que esto funcione para bases de datos MySQL. Estoy trabajando con Typo3, si eso importa. – demonkoryu

+0

Y debe ser de bajo costo. :) – demonkoryu

Respuesta

5

Tienen scripts (bajo el control de la fuente por supuesto) que solo agrega al fondo. Eso combinado con restauraciones regulares de su base de datos de producción a dev debe ser oro. Si eres estricto al respecto, esto funciona muy bien.

De lo contrario, sé que muchas personas usan cosas de redgate para SQLServer.

0

Siebel (producto de gestión de CRM, ventas, etc.) tiene una herramienta integrada para alinear la base de datos de producción con la de desarrollo (dev2prod).

De lo contrario, debe seguir los scripts ejecutados manualmente.

0

Navicat tiene un asistente de sincronización de estructuras que maneja esto.

6

Para PostgreSQL puede usar Another PostgreSQL Diff Tool. Puede diferir dos SQL Dumps muy rápido (unos pocos segundos en un db con aproximadamente 300 tablas, 50 vistas y 500 procedimientos almacenados). Para que pueda encontrar sus cambios fácilmente y obtener un diff sql que puede ejecutar.

Desde el APGDiff Página:

Otra herramienta de diferencias PostgreSQL es sencilla herramienta de diferencias PostgreSQL que es útil para las actualizaciones de esquema. La herramienta compara dos archivos de volcado de esquema y crea un archivo de salida que es (después de algunas modificaciones hechas a mano) adecuado para la actualización del esquema anterior.

5

Otro voto para Redgate SQL Comparar

http://www.red-gate.com/products/SQL_Compare/index.htm

no querría vivir sin él!

Editar: Lo sentimos, parece que esto es solo para SQL Server. Aún así, si algún usuario de SQL Server tiene la misma pregunta, definitivamente recomendaría esta herramienta.

+1

Esto es ahora una herramienta de Red Gate que se ha lanzado recientemente: http://mysql-compare.com/ –

0

Resuelvo esto usando Hibernate. Puede detectar y autocrear tablas, columnas, etc. faltantes

1

Me gusta mucho el EMS tools.

Hay herramientas disponibles para todos los DB populares y tiene la misma experiencia de usuario para cada tipo de base de datos.

Una de las herramientas es el Comparador de DB.

2

Si escribe sus sentencias de SQL para su base de datos de desarrollo (que son, imagino, series de instrucciones DDL como CREATE, ALTER y DROP), ¿por qué no hacer un seguimiento de ellas grabándolas en una tabla, con un índice de "versión"?A continuación, será capaz de:

  1. Siga su versión cambia
  2. hacer una pequeña rutina que permite la actualización "automática" de su base de datos de producción mediante el envío de las instrucciones grabadas para la base de datos.
+0

Esto es esencialmente control de versiones de bases de datos, pero auto-implementado. Buen enfoque, pero probablemente sea mejor usar una herramienta existente. – sleske

25

Ha solicitado una herramienta o una respuesta de aplicación, pero lo que realmente necesita es una respuesta de proceso. El tema subyacente aquí es que debe versionar su base de datos DDL (y DML, cuando sea necesario) y proporcionar scripts de cambios para poder actualizar cualquier versión de su base de datos a una versión superior.

Este conjunto de enlaces proporcionados por Jeff Atwood y escritos K. Scott Allen explicar en detalle lo que esto debe ser similar - y lo hacen mejor de lo que posiblemente pueda escribir aquí: http://www.codinghorror.com/blog/2008/02/get-your-database-under-version-control.html

+3

+1 para versionar la base de datos. Ojalá pudiera votar más ... – sleske

+1

Ese es el problema. Typo3 ejecuta sus propias secuencias de comandos en las actualizaciones/modificaciones, y quiero extraer los cambios cuando lo hace. Es por eso que necesito una herramienta de diferencia de base de datos – demonkoryu

+1

Si desea ir a la ruta de versiones, le recomiendo usar http://www.liquibase.org/. Puede administrar su esquema hacia adelante y hacia atrás en el tiempo. –

1

SAPO

salvó muchos culos varias veces en el pasado. ¿Por qué las personas ejecutan sql sin una estrategia de salida?

la redgate es buena también.

0

Puede agregar algo de automatización a su forma actual de hacer las cosas usando dbDeploy o un script similar. Esto le permitirá realizar un seguimiento de sus cambios de esquema y actualizar/revertir su esquema como mejor le parezca.

0

DBV - "control de versiones de bases de datos, es fácil!" (PHP)

+0

Recordando qué DBV trata con la estructura de la base de datos; no datos –

Cuestiones relacionadas