web-dev-qa-db-fra.com

Générer un script SQL complet à partir de EF 5 Code First Migrations

Comment puis-je utiliser Entity Framework 5 Code First Migrations pour créer un script de base de données complet de l'état initial (vide) à la dernière migration?

Le billet de blog sur MSDN Blog suggère de le faire, mais il semble créer un script vide:

Update-Database -Script -SourceMigration: $InitialDatabase
132
Matt Wilson

L'API semble avoir changé (ou du moins, cela ne fonctionne pas pour moi).

L'exécution de ce qui suit dans la console du gestionnaire de packages fonctionne comme prévu:

Update-Database -Script -SourceMigration:0
268
Matt Wilson

Pour ajouter à la réponse de Matt Wilson, j'avais un tas de classes d'entités code-first mais pas de base de données car je n'avais pas fait de sauvegarde. J'ai donc effectué les opérations suivantes sur mon projet Entity Framework:

Ouvrez la console du Gestionnaire de packages dans Visual Studio et tapez ce qui suit:

Enable-Migrations

Add-Migration

Donnez à votre migration un nom tel que "Initial", puis créez la migration. Enfin, tapez ce qui suit:

Update-Database

Update-Database -Script -SourceMigration:0

La dernière commande créera vos tables de base de données à partir de vos classes d’entités (à condition que vos classes d’entités soient bien formées).

8
Tahir Khalid

Pour tous ceux qui utilisent un noyau d’entité qui se termine ici. Voici comment tu le fais.

# Powershell / Package manager console
Script-Migration

# Cli 
dotnet ef migrations script

https://docs.Microsoft.com/en-us/ef/core/managing-schemas/migrations/#generate-sql-scripts

Il existe plusieurs options pour cette commande.

La migration from doit être la dernière migration appliquée à la base de données avant l'exécution du script. Si aucune migration n'a été appliquée, spécifiez 0 (il s'agit de la valeur par défaut).

La migration vers est la dernière migration qui sera appliquée à la base de données après l'exécution du script. Par défaut, la dernière migration de votre projet est effectuée.

Un script idempotent peut éventuellement être généré. Ce script applique uniquement les migrations si elles n'ont pas déjà été appliquées à la base de données. Cela est utile si vous ne savez pas exactement quelle a été la dernière migration appliquée à la base de données ou si vous effectuez un déploiement sur plusieurs bases de données dont chacune peut avoir une migration différente.

5
Justin Lessard