Jinto Jacob Ответов: 0

Основы сущности проблемы миграции


Я использую Entity framework и code first approach в моем проекте. Я сделал несколько миграций в свою серверную базу данных, и она работала нормально. теперь я добавил еще несколько таблиц и пытаюсь создать миграцию по `add-migration- команда к базе данных на сервере.

Команда выполняется без ошибок и создает файл миграции.

Но, когда я проверяю файл миграции, код в файле миграции должен был снова создать все таблицы в базе данных ("создать таблицу" для уже созданных таблиц также находится в методе up).

Когда я бегу `Update-database- команда, в которой он вернул сообщение об ошибке

таблица уже существует в базе данных.

Я попробовал его на какой-то локальной базе данных в моей системе, и он работал нормально.

Может ли кто-нибудь помочь мне с этим?

Есть ли какие-то специальные разрешения для установки на сервере?

Это потому, что некоторые службы из visual studio блокируются? Если да, то как я могу ее решить?

Что я уже пробовал:

Я проверяю базу данных . Это то же самое и __MigrationHistory таблица содержит предыдущие данные .проблема возникает только при создании файла миграции. Когда я создал файл миграции и отредактировал его должным образом, то update-database работает. Я подозреваю, что есть какой-то сервис, который сравнивает оба database и entity чтобы найти разницу и некоторые из них, как она блокируется. Но я понятия не имею о таком процессе.

Gerry Schmitz

Есть ли "данные" в базе данных, которую вам нужно сохранить?

Если нет, удалите таблицы и "создайте" вместо того, чтобы пытаться мигрировать.

Jinto Jacob

Мне нужно сохранить данные в базе данных

F-ES Sitecore

Тогда не используйте сначала код, а сначала базу данных. Code first не предназначен ни для чего, кроме базовых приложений для прототипирования.

Nitin S

удалите файл миграции и создайте его снова

Jinto Jacob

пытался. но безуспешно.

Nitin S

затем попробуйте удалить таблицы и снова запустить update-database

Jinto Jacob

Не разрешается удалять. База данных содержит важные данные.

Nitin S

вы создали таблицы вручную, не так ли? не через миграцию

Jinto Jacob

Таблицы были созданы с помощью первой миграции кода ранее. и приложение работало некоторое время. Для новой модификации нам пришлось добавить дополнительную таблицу в базу данных. Именно тогда и происходит ошибка. Нет проблем с миграцией на мой тестовый сервер базы данных. Но ошибка находится на живом сервере приложений

Nitin S

Удалите существующую папку миграции в вашем проекте. Удалите таблицу "__MigrationHistory" из существующей базы данных. Теперь вы можете восстановить эту таблицу истории:

PM> enable-миграция
PM> add-migration Initial -IgnoreChanges
PM> update-база данных
-IgnoreChanges создает пустые методы Up() и не вносит никаких изменений в существующие объекты.

0 Ответов