2009-04-23 8 views
5

Estoy trabajando en un proyecto con otras dos personas. Todos tenemos copias locales del proyecto, que también se actualiza constantemente a través de svn repo.Sincronización de esquemas de base de datos entre desarrolladores

Como estamos en la etapa inicial del desarrollo, a menudo cambiamos el esquema de nuestra base de datos. Esto nos lleva a un gran problema cuando sincronizamos nuestro código, porque no tenemos una excelente manera de sincronizar nuestros esquemas de base de datos.

¿Cuáles son algunas maneras intuitivas y fáciles de sincronizar el esquema de base de datos que cambia frecuentemente?

Estamos trabajando con CakePHP (no estoy seguro si esto me ayudaría a encontrar buenas soluciones).

EDITAR

encontrado algunas herramientas para hacer este tipo de trabajo en CakePHP: http://book.cakephp.org/view/734/Schema-management-and-migrations

Y aquí es un sitio web adicional: http://bakery.cakephp.org/articles/view/cake-db-migrations-v2-1

Respuesta

2

migraciones de bases de datos son una forma fácil para mantener sus bases de datos en funcionamiento sincronizadas. Básicamente, las migraciones son scripts que actualizan una base de datos al último esquema y completan las tablas nuevas con los datos correctos, por lo que se mantienen en un estado válido.

Hay algunas características proporcionadas por las migraciones:

  • herramientas para automatizar la creación/actualización de las tablas. Las herramientas hacen un seguimiento de la versión de esquema y qué scripts necesitan ejecutarse.
  • Algunas herramientas de migración proporcionan la capacidad de ejecutar código (C#, ruby, etc.) en lugar de scripts sql. Las bibliotecas de códigos proporcionadas por la herramienta de migración suelen ser más capaces de abstraer las partes dependientes de la base de datos y hacer que sus scripts de base de datos sean más independientes de la base de datos.

Hay herramientas disponibles para Ruby (las migraciones son una parte importante de Rails), C# y Java. Sin duda, otros idiomas también.

Hay un número de questionshere en las migraciones y sugiero que busque una herramienta de migración que se ajuste a su cadena de herramientas.

+0

hm. ¡encontré una herramienta para CakePHP que puede funcionar para nosotros! (Debo probar esto lo antes posible) Gracias por sus sugerencias. – codingbear

+0

np: me alegro de que haya encontrado algo que debería funcionar para usted. buena suerte. –

1

CakePHP Database Migrations de Joel Moss es, de lejos, la mejor solución en este momento.

Descripción del proyecto de github:

migraciones de bases de datos para CakePHP 1.2 es un script de shell con el apoyo de la consola de CakePHP, que le permite administrar tu base de datos sin tocar un poco de SQL. Se basa en la implementación de migraciones de Ruby on Rails y utiliza el paquete MDB2 de Pear, por lo que admite todas las bases de datos compatibles.

Puede pensar en Migrations como un sistema de control de versiones para su base de datos. Su poder se presta perfectamente para desarrollarse como parte de un equipo, ya que cada miembro puede conservar su propia copia independiente de la base de datos de su aplicación y usar Migraciones para realizar cambios en su esquema. Todos los otros miembros tienen que hacer eso, es ejecutar un simple comando de shell de dos palabras, y su copia de base de datos está actualizada con la de los demás.

El shell Migrations generará un archivo de migración para cada cambio de base de datos que desee realizar. Este archivo puede incluir cualquier cantidad de cambios en la base de datos.

0

he comenzado un pequeño proyecto que utilizamos para sincronizar la base de datos entre desarrolladores y desplegarla en producción. Todavía está en una etapa inicial, pero ha demostrado que funciona, pero aún no tiene mucha documentación.

http://code.google.com/p/php-mysql-version-control/

Cuestiones relacionadas