2010-12-10 13 views
5

Estamos construyendo una aplicación en C# que utiliza Entity Framework con SQL Server 2008. Diseñamos el modelo mediante el diseñador de Visual Studio y generar automáticamente las entidades de esto.Manejo de las migraciones de bases de datos cuando se utiliza Entity Framework

Estamos trabajando en la versión 1.0. Cuando lanzamos 2.0, necesitaremos hacer cambios en el modelo y la estructura de la base de datos subyacente. Supongo que necesitamos lo que se llama "migraciones de bases de datos".

Tradicionalmente, he tenido una tabla en la base de datos llamado algo así como 'versión'. Cada vez que he creado una nueva versión de mi software, he creado scripts de actualización de base de datos que contienen sentencias ALTER TABLE. Mi software ha comprobado la tabla de versiones y ejecuta los scripts de actualización necesarios para actualizar la base de datos a la "versión de software".

¿Hay alguna manera mejor de manejar esto? Sería bueno si no tuviera que escribir las secuencias de comandos alter y escribir mi propio software para actualizar la estructura de la base de datos.

Respuesta

0

Lo que solía hacer cuando hacía modelo primero, es apunte mi modelo a una base de datos que era puramente de esquema (así que tenía una base de datos myapp, que era donde se ejecutaba mi aplicación, pero mi modelo EF4 se enviaba a una base de datos myapp_schema). Cuando se actualizó myapp_schema, utilicé Db Source Tools para generar las secuencias de comandos de actualización y hacer que el esquema de la base de datos de myapp sea el mismo que myapp_schema.

0

Chech this post out. Se trata de CTP4 de EF4, pero es lo que necesitas.

http://blogs.msdn.com/b/efdesign/archive/2010/10/22/code-first-database-evolution-aka-migrations.aspx

Unforunately esto no está disponible todavía. CTP5 fue lanzado hace unos días y, por lo que yo sé, aún no está incluido.

+0

Genial. Pero sería aún más genial si la solución funcionara con el enfoque de modelo primero de hoy, en lugar de con código primero en algún momento en el futuro. ;-) – Martin

+0

Estoy de acuerdo y espero que esta funcionalidad no se limite primero al código, sino que también se amplíe al modelo primero. Y realmente espero que lo publiquen lo antes posible. Esta fue probablemente más una respuesta FYI luego una solución. Espero que alguien realmente sepa algo actual como este. – gligoran

Cuestiones relacionadas