web-dev-qa-db-fra.com

Migrations de structure d'entité - générer un script SQL du modèle de base de données actuel

J'essaie de générer un script sql qui créera une base de données pour moi. Jusqu'à présent, j'ai essayé ceci:

Update-Database -Script -SourceMigration: $InitialDatabase
Update-Database -Script -SourceMigration:0

Mais les deux me donnent des scripts qui commencent de la première migration à la fin. Et il n'y a pas d'état initial de la base de données, qui devrait inclure la création de la base de données elle-même, et une table unique qui était là lorsque j'ai ajouté des migrations à mon projet.

Alors, comment puis-je recréer mon modèle maintenant, lorsque les migrations ne me donnent pas le script sql complet?

25
ojek

Essayer:

Update-Database -Script -SourceMigration: $InitialDatabase -TargetMigration: [MigrationName]

Cela devrait inclure le script de la base de données initiale vers la migration ciblée. À tout le moins devrait avoir la table "MigrationHistory".

Vous pouvez également essayer de recréer vos migrations en:

1) Revenir à la base de données initiale. Si tout se passe bien, cela devrait supprimer toutes les tables de votre base de données.

Update-Database -TargetMigration: $InitialDatabase

2) Supprimez tous vos fichiers de migration dans le dossier Migrations. Vous n'avez pas besoin de supprimer le fichier de classe de configuration.

3) Ajoutez une nouvelle migration. Cependant, cela créerait un fichier de migration de la base de données initiale vers votre dernier modèle.

Add-Migration -Name: [MigrationName]

J'espère que cela aide. Je suggère également de regarder this blog post. Prenez note de l'astuce n ° 5 qui est "Ne supprimez jamais une migration avant de la sauvegarder (vers le bas)". D'après mon expérience, cela provoque des problèmes de migration s'ils ne sont pas suivis.

48
cubski