|
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,768
|
|
EntityFramework Core: миграция по фактической структуре24.06.2018, 20:41. Показов 1509. Ответов 5
Метки нет (Все метки)
Подскажите, как настроить стандартный EF-мигратор на работу по фактической структуре БД, а не по сохранённым в специальные таблицы метаданным?
В документации найти не получается. Опытным путём тоже не удаётся пройти следующий сценарий: 1. Создали структуру согласно миграции. 2. Что-то пошло не так, структура БД претерпела непредвиденные изменения. 3. Запустили мигратор снова, он привёл текущую структуру к требуемой. Вот на третьем пункте мигратор, почему-то, не видит изменения структуры БД и фактическая ошибка случается уже намного позже, когда при попытке записать/прочитать данные, обнаруживается несоответствие структуры БД модели.
0
|
|
| 24.06.2018, 20:41 | |
|
Ответы с готовыми решениями:
5
EntityFrameWork - миграция для добавления колонки? EntityFramework Core: сессионная переменная Миграция в БД [.Net Core] |
|
14307 / 9388 / 1355
Регистрация: 21.01.2016
Сообщений: 35,407
|
|
| 25.06.2018, 07:04 | |
|
kotelok, если можете, то пересоздайте схему базы заново. Если есть ценные данные, то приведите схему базы к какому-нибудь конкретному виду вручную и в таблице версий (migrations или как она называется) удалите записи о последующей (сломанной) миграции.
А вообще, будет вам урок классный. Отличный повод научиться выполнять изменения в транзакциях, а перед миграциями делать бэкапы.
1
|
|
|
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,768
|
|
| 25.06.2018, 07:14 [ТС] | |
|
Usaga
Это я в курсе, но тут именно требования бизнеса автоматически приводить структуру к шаблону независимо от её исходного состояния с (по возможности) сохранением данных. Экономит кучу времени как нерадивым клиентам, так и техподдержке. В других проектах для этих целей используются либо полностью самописные велосипеды, либо что-нибудь доработанное на базе открытых библиотек. В новом проекте подумал обойтись стандартными средствами, но, похоже, EF так не умеет.
0
|
|
|
14307 / 9388 / 1355
Регистрация: 21.01.2016
Сообщений: 35,407
|
|
| 25.06.2018, 07:21 | |
|
kotelok, скорее всего EF так уметь должен. Просто ему нужна некая конкретная схема и номер версии базы или ещё какие метаданные в специальной таблице.
Что-то из этого у вас сломалось, видимо. Я не пользовался миграциями EF-а, так что не особо вам помощник, но мест, куда копать, у вас не много. Не по теме: Если честно, то я бы реализовал миграции или совсем вручную (SQL-скриптом) или с помощью какого-нибудь Fluent Migrations или чего подобного. Но EF-у бы такое доверять побоялся, ибо данные ценнее удобства.
0
|
|
|
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,768
|
||
| 25.06.2018, 07:29 [ТС] | ||
|
Основная проблемма именно в отсутствии метаданных, или в их несоответствии реальной структуре. Вероятно, как компромис можно будет попробовать реализовать свой механизм сбора информации о структуре, т.е. чтобы EF брал данные эти не из таблиц метаданных, а распарсивал фактическую структуру.
0
|
||
|
14307 / 9388 / 1355
Регистрация: 21.01.2016
Сообщений: 35,407
|
|||
| 25.06.2018, 07:34 | |||
|
Но вам один чёрт придётся придусмотреть защитные меры на будущее. Чтобы подобное больше не повторилось. На самом деле, у самописного скрипта есть серьёзный плюс: скрипт максимально гибок и работает с данных прямо в базе, не создавая трафика никакого.
1
|
|||
| 25.06.2018, 07:34 | |
|
Помогаю со студенческими работами здесь
6
Ошибка при установке Mysql.Data.EntityFramework core Как правильно настроить EntityFramework Core для работы с MySQL? EntityFramework Core: "простой" запрос Рассчет фактической мощности БП Списание материалов по фактической цена Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|