14

Supongo que debería haber pensado en esto antes de comenzar mi proyecto pero he construido y probado una mini aplicación usando el enfoque de primer código y estoy listo para implementarlo en un servidor web de producción.Implementar Entity Framework Code First

He movido la carpeta a mi servidor provisional y todo funciona bien. Solo tengo curiosidad si hay una estrategia de implementación sugerida.

Si realizo un cambio en la aplicación, no quiero perder todos los datos si la aplicación se reinicia.

¿Debo simplemente generar las secuencias de comandos de la base de datos del proyecto de código primero y luego moverlo a mi servidor de esa manera?

Cualquier consejo y enlace de guía sería útil.

Gracias.

Respuesta

5

En realidad, el inicializador de base de datos es solo para desarrollo. Implementar dicho código en la producción es la mejor manera de obtener algunos problemas. Code-first actualmente no tiene ningún enfoque para la evolución de la base de datos, por lo que debe crear scripts de cambio manualmente en su base de datos después de la nueva versión. El enfoque más fácil es usar herramientas de base de datos en VS Studio 2010 Premium y Ultimate. Si va a tener una base de datos con el esquema anterior y una base de datos con el nuevo esquema y VS preparará el script de cambio para usted.

+4

Disculpe mi ignorancia. ¿Pero podría describir los pasos que debo seguir para mover este proyecto a mi servidor de producción? – KidCoke

+1

Yo también me gustaría obtener más información, @Ladislav – billy

+0

¡También me gustaría obtener más información! Existen restricciones a nivel local, como el límite de la cadena 4k (necesito max para la producción) ... entonces, ¿cómo creo/obtengo el esquema final? – wil

1

Estos son los pasos que sigo.

  1. Comenta cualquier estrategia de inicialización que esté utilizando.
  2. Genere los scripts de base de datos de esquema + datos para todas las tablas EXCEPTO la tabla EdmMetadata y ejecútelos en el servidor web. (Por supuesto, si se trata de un servidor de producción, TENGA CUIDADO con este paso. En mi caso, durante el desarrollo, los datos en producción y desarrollo son idénticos.)
  3. Confirme mi solución a la subversión, que luego activa la creación, prueba y prueba de TeamCity. e implementar en el servidor web (por supuesto, tendrá su propio método para este paso, pero de alguna manera implementará el sitio web en el servidor web).
  4. ¡Ya ha terminado!

Las tablas Inicializador y EdmMetadata solo son necesarias para el desarrollo.

+0

Sí, esta es esencialmente la forma manual de hacer lo que un Visual Studio Database Project hace automáticamente por usted. http://kingdango.com/blog/2011/12/a-simple-solution-for-deploying-code-first-model/ – kingdango

+2

NOTA: puede usar las directivas de preprocesador para eliminar automáticamente SetInitializer http://msdn.microsoft .com/en-us/library/4y6tbswk.aspx –

Cuestiones relacionadas