Impossible de générer un explicite de la migration dans le cadre de l'entité
Je suis l'ajout d'une nouvelle migration, mais ce message indique:
Pas en mesure de générer une explicite de la migration, car les suivantes
explicite les migrations sont en attente: [201203170856167_left]. Appliquer le
dans l'attente explicite migrations avant de tenter de générer un nouveau
explicite de la migration.
Quelqu'un peut-il m'aider?
- Ce qui m'est arrivé lorsque j'avais accidentellement changé mon projet de démarrage à un autre. Vous (ou d'autres, la lecture de ce) peut vouloir vérifier rapidement avant d'essayer un peu plus dans la profondeur de la difficulté de prise de vue (en particulier ceux où vous devez commencer la suppression des migrations et tel).
- Il y a une classe de migration dans les Migrations répertoire qui n'est pas mis à jour dans le _MigrationHistory de la base de données. La suppression de cette classe à avoir le même état à la fois dans la Migration répertoire de base de données et a résolu mon problème.
Vous devez vous connecter pour publier un commentaire.
Il vous dit qu'il est non transformés de la migration de votre application et il nécessite l'exécution de
Update-Database
avant, vous pouvez ajouter une autre migration.-StartupProject ContentHub.Database
Update-Database
donne >Impossible de mettre à jour la base de données pour correspondre le modèle actuel parce qu'il y a des modifications en attenteJ'ai eu le même problème. Apparemment, entity framework génère cette erreur lorsqu'il est impossible de se connecter à la base de données. Donc, assurez-vous que vous êtes en mesure d'accéder à avant de chercher d'autres problèmes.
Vous devez exécuter "mise à jour de la base de données" à partir du gestionnaire de paquets de la console pour pousser vos modifications à la base de données OU vous pouvez supprimer les en attente de migration de fichiers ([201203170856167_left]) à partir de votre Migrations dossier, puis exécutez de nouveau "add-migration" pour créer une nouvelle marque de la migration en fonction de vos modifications.
Cette erreur peut également signifier que les migrations ne sont pas reconnus plus. Ce qui m'est arrivé après avoir modifié la valeur de la ContextKey dans les Migrations.La Configuration.
La solution était tout simplement de mettre à jour le ContextKey dans la table de base de données "__MigrationHistory" (ou de rétablir la valeur dans la Configuration de la classe, je suppose). Le ContextKey et de l'espace de Noms dans votre demande doit correspondre.
1. Chaîne De Connexion /Connexion Autorisations
Sur la chaîne de connexion à nouveau.
Assurez-vous que l'utilisateur avec lequel vous vous connectez encore a l'autorisation de lire à partir de
[__MigrationHistory]
et a l'autorisation de modifier le schéma.Vous pouvez également essayer de modifier la chaîne de connexion dans l'Application ou le fichier de configuration Web pour utiliser La Sécurité Intégrée (Windows Auth) pour exécuter le complément de commande de migration comme vous.
Par exemple:
Cette chaîne de connexion aller dans l'Application.fichier de configuration du projet où la DbContext est situé.
2. Projet De Démarrage
Vous pouvez spécifier le projet de Démarrage sur la ligne de commande ou vous pouvez cliquer droit sur le projet avec le
DbContext
,Configuration
et les Migrations dossier et sélectionnez Définir comme projet de Démarrage. Je suis sérieux, cela peut réellement aider.Integrated Security
fix fonctionne très bien!Eu le même problème et a pu le résoudre avec quelques astuces de réponses ci-dessus:
ou
Utiliser "mise à jour de la base de données -verbose" dans le gestionnaire de paquets de la console pour obtenir des informations plus spécifiques où les migrations tente de se connecter. (Aidé dans mon cas, de trouver mon démarrage proj n'était pas correctement...)
Lors de l'exécution de cette question, s'il vous plaît essayer ajout de paramètres à ajouter-applet de commande de migration. Par exemple, en spécifiant le début du projet, ainsi que la chaîne de connexion nom pourrait aider EF trouvez votre base de données cible.
Où:
Delta_Defect_0973 est le nom de votre migration
votre.espace de noms.ContextClassName est le nom de votre classe de Configuration dans votre migration dossier, préfixé par le nom complet de l'espace.
DeltaProject est le nom de votre projet avec votre site web.config ou app.fichier de configuration.
DeltaSQL est le nom de votre chaîne de connexion définie dans votre site web.config ou app.fichier de configuration.
Si vous n'avez pas utilisé
Update-Database
vous pouvez simplement le supprimer. Si vous avez exécuté la mise à jour puis la rouler en arrière en utilisantUpdate-Database -TargetMigration "NameOfPreviousMigration"
, puis de le supprimer.De référence:
http://elegantcode.com/2012/04/12/entity-framework-migrations-tips/
J'ai copié ce texte directement à partir d'ici: Comment puis-je annuler le dernier complément de commande de Migration?
Cette erreur signifie qu'il y a dans l'attente de migrations doivent être engagés avant d'en exécuter un autre explicite de la migration. Vous pouvez choisir de
Après celui-ci, vous pouvez commencer à Ajouter de la Migration ..." encore une fois
Espère que cela aide
Juste mes deux cents:
Mon scénario:
Solution:
Pour obtenir autour de ce que je viens juste fourni plus explicite paramètres:
Je suis porté à croire que vous pouvez définir un paramètre dans votre application.dossier config pour vous permettre de défaut ce comportement, de sorte que vous n'avez pas à fournir explicite des paramètres à chaque fois. Cependant, je ne suis pas sûr de la manière de le faire.
-ConnectionStringName
est une alternative à cela, et tirez la chaîne de connexion à partir de votre config par nomIl y a une ambiguïté et donc l'erreur. La meilleure façon est d'exclure l'actuel fichier de migration et de créer de nouvelles migrations(ajoutez-la migration) fichier puis copier le contenu de la nouvelle migration de fichiers exclus et de l'inclure à nouveau et exécuter mise à jour de la base de données commande.
update-database
commande puis retenté maadd-migration
commande et cela a fonctionnéj'ai résolu le même problème comme ceci:
J'ai eu le même problème et a pu le résoudre de course Ajouter-Migration "MigrationName' -Force
Avec Force cours de la partie importante.
Ma base de données locale n'ont pas la
__MigrationHistory
peuplées, ou existant. J'ai créé manuellement la table, et ensuite migré les données de cette table de PROD de ma base de données locale. Cela a provoqué VS penser les migrations ont été appliquées (qu'elles ont été).Astuce: Il est toujours bon d'utiliser le
-Script
interrupteur pour la migration des commandes, si vous n'êtes pas sûr. Elle aussi aide vraiment à comprendre ce queUpdate-Database
la réalité.Je exécutez la procédure suivante pour mettre à jour la base de données, puis-je obtenir un script que je peux appliquer manuellement (ou l'exécuter à nouveau, sans la balise Script).
Pour
Update-Database
je voudrais exécuter les opérations suivantes :Update-Database -Script -ConfigurationTypeName Configuration_ASPNETIdentity -ConnectionStringName SQL_AzureLive
Où
SQL_AzureLive
est le nom de la chaîne de connexion dans ma config.Alors je peux vérifier le SQL ressemble à droite, de l'appliquer et de faire. Comme beaucoup d'autres l'ont dit, si la chaîne de connexion est incorrecte ou invalide, vous obtiendrez cette erreur.
Scénario
Problème
Après la mise à jour de master, je exécutez "Ajout de la Migration my_migration_name", mais obtiens l'erreur suivante:
Donc, je lance "mise à Jour de la Base de données" et obtenez l'erreur suivante:
Solution
À ce point de ré-exécuter "Add-Migration my_migration_name" résolu mon problème. Ma théorie est que l'exécution de la "mise à Jour de la Base de données" tout est dans l'état nécessaire pour être en ordre pour les "Add-Migration" de travail.
J'ai aussi rencontré ce problème. Il est venu quand j'ai créé de nouveaux DB et j'ai eu les modifications en attente pour mon code-première DB migration ensuite, j'ai essayé d'exécuter la mise à Jour de la Base de données de la commande". Solution : Exécutez "Ajout-Migration-MigrationName de la commande" créer nouvelle migration pour les nouveaux DB. Puis "mise à Jour de la Base de données de la commande".
J'ai eu ce problème aussi, pour une base de données que je savais, c'était jusqu'à ce jour lors de l'exécution d'Ajouter de la Migration. Résolu par la simple exécution de l'Add-Migration commande une deuxième fois. Soupçonner un problème de connectivité, comme suggéré par Robin Dorbell ci-dessus.
Qui a été passé, quand soudain j'ai renommé la classe des vieux de la migration qui existent déjà dans la bd. J'ai vérifié VCS histoire, a déterminé que la renommé et à l'arrière. Tous travaillé par la suite.
Je l'ai fait d'une autre manière.
Je larguaient base de données entièrement et exécutez la commande "mise à jour de la base de données" de nouveau dans vs
J'ai eu un simple problème. VS déclaré à tort cette erreur quand j'ai eu une connexion VPN pour le site d'un client connecté sur mon poste de travail. Le problème est que le système de gestion de la sécurité a été configuré pour accepter les demandes uniquement à partir de mon adresse IP locale. Le fait de désactiver le VPN le problème est résolu.
Dans mon cas (à l'aide de MS Visual Studio), c'était aussi simple que de redémarrer Visual Studio.
Pour moi, j'ai supprimé le fichier de migration(dans votre cas "201203170856167_left") à partir de
Migrations
dossier de, et puis a couru la commande ci-dessous dans le Gestionnaire de paquets de la consoleJ'ai subi exactement le même problème juste après le rétablissement à partir d'une migration vers un autre.
Dans mon cas, j'ai "targetedmigration" à partir de "migration06" à "migration04".
J'avais besoin de supprimer le "migration0 6"et puis j'ai été en mesure de forcer la création de la "migration05". Cela signifie essentiellement que vous avez besoin simplement de continuer à la prochaine migration après le ciblés.