Pregunta

Decir que tengo un sitio web y una base de datos de ese sitio web alojado de forma local en el ordenador (para el desarrollo) y otra base de datos alojada (para producción) ... es decir, primero que hago los cambios en la db dev y luego hago los cambios a la prod DB.

¿Qué es la mejor manera de transferir los cambios que hice en la base de datos local a la base de datos alojada?

Si importa, estoy usando MS SQL Server (2008)

¿Fue útil?

Solución

La forma correcta de hacer esto con Visual Studio y SQL Server es añadir un Base de datos del proyecto para la solución de aplicación web. El proyecto de base de datos debe tener los archivos SQL que se pueden volver a crear la base de datos completamente en un nuevo servidor, junto con todas las tablas necesarias, los usuarios de los procedimientos y funciones.

De esa manera, están incluidos en el control de la fuente de todo el resto del código.

No es un cambios subcarpeta en el Proyecto de base de datos donde pongo los archivos SQL que se aplican las nuevas modificaciones o adiciones a la base de datos para las versiones posteriores.

El SQL en los archivos debe ser escrito con la adecuada "si existe" bloques de tal manera que se puede ejecutar con seguridad varias veces en una base de datos actualizada ya sin error.

Como regla general, nunca se debe de realizar los cambios directamente en la base de datos - en lugar de modificar la secuencia de comandos SQL en el proyecto y aplicarlo a la base de datos para hacer el código fuente segura (los archivos SQL) es siempre actualizada <. / p>

Otros consejos

Esto lo hacemos en el (Ruby on) Rieles mundo escribiendo "migraciones", que captura los cambios que hacen a la estructura de base de datos en cada punto. Estos se ejecutan con una herramienta de migración (una tarea de rake), que también escribe en una tabla DB para que sepa si un particular la migración se ha ejecutado o no.

Se podría hacer una estructura como esta para su plataforma dev (.Net?), Pero creo que en otras respuestas a esta pregunta la gente va a sugerir herramientas disponibles para el manejo de versiones de base de datos en la plataforma de desarrollo, o tal vez para su específica DB .

No sé cualquiera de estos, , pero echa un vistazo a esta lista . Veo un montón de cosas de pago por ahí, pero tiene que haber algo libre. También comprobar esto .

emigro cambios a través de guiones escritos por los desarrolladores de cambio cuando han probado / verificado sus cambios. (La excepción es el movimiento de datos de gran tamaño.) Todos los scripts se almacenan en un sistema de control de origen. y puede ser verificada por los administradores de bases.

Es manual, en algún tiempo, pero eficaz, seguro y controlado proceso.

Las bases de datos son demasiado vital para copiar de prog.

Existen herramientas para ayudar a crear / verificar estos scripts. Ver http://www.red-gate.com/ He utilizado sus herramientas de comparación 2 bases de datos para crear secuencias de comandos. Brian

Si los cambios son pequeños, a veces me hago a mano. Para cambios más grandes, yo uso SQL puerta roja 's de comparación para generar scripts de cambio. Estos son verificadas a mano y se ejecutan en el entorno de control de calidad primero para asegurarse de que no se rompan nada. Para grandes cambios, corremos una copia de seguridad especial antes de hacer el cambio, tanto en el control de calidad y en la producción.

Se utilizó para utilizar el enfoque proporcionado por Ron. Tiene sentido que un gran proyecto con el equipo dedicado de DBA. Pero si usted no tiene una desarrolladores dedicados que escribir el código sólo para este DB enfoque es el tiempo y los recursos caros .

El método utilizar Redgate DB comparar tampoco es bueno. Usted todavía tiene a la hace una gran cantidad de trabajo manual se puede pasar por alto algunos pasos por error .

Se necesita algo mejor. Esto se fue la razón por la cual hemos construido el "ágil DB Recreación / Importar / atrás / Exportación función" La herramienta es gratuita.

Ventajas: sus desarrolladores utilizan herramientas preferidas para desarrollar DEV DB. A continuación, se corre el DB RIRE y hace reverseengeniring DB (tablas, vistas, Proc stor, etc) y exportar datos en archivos XML. Los archivos XML se puede mantener en el sistema de cualquier repositorio de código.

Y el segundo paso es ejecutar DB RIRE una vez más para generar secuencias de comandos diferencia entre estructura y los datos en archivos XML y de Producción DB.

Por supuesto se puede hacer tanto como sea necesario iteraciones.

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