2016-04-15 5 views
0

Dans un environnement d'équipe, nous avons un membre avec une base de données qui contient déjà certaines tables du modèle, mais pas de table Historique des migrations. En utilisant les migrations automatiques EF, comment mettre à jour la base de données pour créer la table d'historique, ajouter les tables manquantes et modifier/mettre à jour les tables existantes? Nous devons mettre à jour la base de données de ce membre car les tables existantes contiennent des données.Migrations automatiques lorsque la table d'historique n'existe pas

Répondre

1

Je pense que EF ne supporte pas votre scénario, mais continue à chercher.

Si je devais faire cela, je:

  1. Créer un projet vide
  2. désosser le DB actuel à un ensemble sur les entités EF
  3. Demandez à ce projet de créer une nouvelle base de données, qui comprendra la table d'historique
  4. Copiez le tableau d'historique de la principale DB
  5. Exécutez la principale application pour mettre à niveau la base de données

Bien sûr, je prendrais d'abord une sauvegarde, et nommerais le projet temporaire et son DbContext comme le projet principal, au cas où EF les inclue d'une manière ou d'une autre dans la table d'historique.

Il y a aussi une autre façon de le faire:

  1. Have EF créer des tables sur un vide DB
  2. Copie toutes les données de cet utilisateur de leur ancien DB, en utilisant l'assistant d'import/export SSMS

Lequel je suggère: le second, lequel je ferais: le premier, car il est le plus aventureux!