Основы сущности проблемы миграции
Я использую
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() и не вносит никаких изменений в существующие объекты.