5

Supongamos que tiene un proyecto de base de datos y NO tiene marcada "Volver a crear siempre la base de datos" en la configuración de Database.sqldeployment. Y supongamos que se despliega en un servidor que ya tiene una base de datos por el nombre de la que está implementando.¿Cómo previene que una implementación de proyecto de base de datos VS2010 genere una base de datos drop?

¿En qué otras circunstancias la base de datos se desplegará generará un script con una declaración "DROP DATABASE"?

Si alguna vez, alguna vez desea que su base de datos caiga mediante la secuencia de comandos de despliegue generada al hacer clic derecho en su proyecto de base de datos y seleccionar "Implementar", ¿cuáles son algunos de los pasos que puede seguir para evitarlo?

+0

¿Alguna posibilidad de que pueda publicar los archivos de proyectos y configuraciones? AFAIK la opción que mencionaste es la única que provocaría que una DROP DATABASE esté programada. –

+0

Lamentablemente, no, porque el proyecto pertenece al cliente. Además, ni siquiera puedo reproducir esto. El proyecto ahora genera el script sin la caída. Estoy tratando de descubrir qué pudo haber causado que generara el script con un drop anterior. Frank, a continuación, tuvo una buena idea sobre la conexión de destino. Aunque se estableció la conexión de destino, es posible que se haya configurado solo en la configuración de mi proyecto y no en la configuración de mi entorno aislado. También consideré que quizás tener una conexión de destino definida, pero no ser VPN podría haberlo causado. idk. –

+0

Ah, eso tiene sentido. Sí, el desarrollador aislado vs la configuración del proyecto puede ser un poco confuso. Me alegro de que abandonaron esa idea en SSDT. ¿Recuerda si la implementación se realizó de forma interactiva o un servidor de compilación la ejecutó por usted? Si fuera el último, podría haber algo útil capturado en el registro de compilación. –

Respuesta

3

Además de "No volver a crear la base de datos" NO está marcada, también debe verificar la pestaña Desarrollo en la página Propiedades del proyecto de su base de datos. Asegúrese de definir una conexión de destino. Cuando no define uno, el proyecto siempre y solo se implementará como si la base de datos de destino no existe. Este comportamiento es por diseño. vea esto link para más detalles.

Mi sugerencia es crear la conexión utilizando la Autenticación de Windows para que cada usuario tenga acceso a la extensión que se supone que debe.

También tenga en cuenta que va a tener que hacer esto para cada configuración de implementación (por ejemplo, depuración, liberación, etc.)

Yo personalmente puse la acción de implementación de solo crear un script y ejecutarlo manualmente para estar en el ¡lado seguro!

+1

Gracias Frank. Resultó que tenía una conexión de destino definida para esa configuración de proyecto, era una cadena de conexión válida, y configuré la acción de implementación para generar el script para poder ejecutarlo manualmente desde SSMS. Sin embargo, el guión todavía tenía una declaración Drop en él. Hace algunas sugerencias geniales, e incluso después de leer el excelente enlace que proporcionó, todavía siento que todavía puede haber algún otro motivo por el que mi secuencia de comandos de implementación haya generado una base de datos de abandono. –

Cuestiones relacionadas