2011-04-27 20 views
7

Estoy en una situación en la que me he encargado de hacer una aplicación o extensión a Umbraco que hace que los usuarios de backend puedan migrar sus cambios en el sitio de desarrollo a sitio en vivo Se supone que esta migración ocurre una vez al día, o cuando los usuarios de back-end presionan un botón en el back-end.Migrar los datos de Umbraco desde el sitio de desarrollo al sitio vivo programáticamente

Soy consciente de que Umbraco ofrece esto en el paquete Courier, pero aparentemente no funciona lo suficientemente bien para este caso.

algunos detalles más:

El desarrollo y el sitio vivo ambos residen en el mismo servidor y también lo hacen sus bases de datos. Los datos simplemente deberán transferirse de una carpeta a otra y lo mismo con las tablas en la base de datos.

Como puedo ver, hay dos métodos para solucionar esto.

1) Hace una migración completa, donde básicamente hace un desmontaje de la base de datos en vivo y la actualiza a la nueva versión. A continuación, copie todos los archivos que necesita también.

2) Usted crea un paquete que contiene los tipos de documento y así sucesivamente ha cambiado en su sitio de desarrollador y carga ese paquete en el sitio en vivo.

El problema con el número 1 es que parece que tiene que volver a publicar todo el sitio cuando ha realizado la transferencia. Por lo que he entendido, puedes hacer esto con un servicio web, pero preferiría que pudiera usar una aplicación de consola en su lugar.

Mi pregunta es entonces:

¿Hay una manera de crear paquetes de programación y cargarlos en la misma forma o lo que sería la mejor manera de lograr esto mediante programación la migración?

Cualquier sugerencia sería muy apreciada como yo soy una especie de en una pérdida para una manera de hacer esto :)

EDITAR

terminé haciendo realmente un reflejo completo en el sentido de que yo utilicé Robocopy para transferir todos los archivos que habían sido cambiados en las carpetas, y luego hice una copia de seguridad del sitio de desarrollo con un comando SQL, y luego lo restauré en la base de datos en vivo usando el comando RESTORE SQL.

Se deben realizar algunas configuraciones en los comandos de SQL, pero se ejecuta sin problemas y una transferencia completa demora hasta 10 segundos dependiendo de la cantidad de archivos que se han cambiado.

Una última cosa. Si desea que los cambios sean visibles, necesita que Umbraco se vuelva a cargar. Esto puede hacerlo modificando el archivo web.config, ya sea manualmente o configurando LastWriteTime mediante programación.

Respuesta

4

Siempre puede crear un control de usuario que se encargará de la republicación de todo el sitio para usted, esto lo puede hacer desde su aplicación de consola.

También puede unirse al programa the Courier 2 beta, que de hecho es lo suficientemente bueno (para las características de todos modos, no lo he probado yo mismo).

Otra ruta podría ser ofrecer todos los nodos como un suministro xml y utilizar la función de programación de CMSImport para migrar nodos automáticamente.

Esta es una pregunta difícil, hay muchas opciones que aún no son una bala de plata. Tengo buenas esperanzas de que Courier 2 sea perfecto para esto y estoy esperando ansiosamente su lanzamiento.

+0

Pero, ¿cómo manejarías la migración de los nodos en la base de datos? Solo si otros miran la respuesta, necesitaría hacer un seguimiento de los id de las nuevas páginas para que no publique accidentalmente las páginas que realmente no desea publicar, si es que existen. –

+0

Usted comienza con 2 bases de datos idénticas. Luego, cuando coloque 1 de ellos en un entorno en vivo, resepee todas las tablas que cambiarán (lo siento, no sé cuáles cambiarán) para comenzar con una semilla muy alta. El contenido existente puede sobrescribirse (misma ID) nuevo contenido en la base de datos de origen se puede copiar sin interferir con el contenido existente. – sebastiaan

+0

FYI: He estado buscando la bala de plata y esto es lo más cercano que tengo, es simplemente muy difícil hacerlo en Umbraco y no conozco a muchas personas que tengan una estrategia automatizada exitosa. Se supone que Courier 2 hace todo esto realmente fácil. – sebastiaan

Cuestiones relacionadas