powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как правильно работать с миграциями в продакшене?
25 сообщений из 92, страница 1 из 4
Как правильно работать с миграциями в продакшене?
    #39071387
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
База уходит в работу и её вот так вот запросто уже не грохнешь, если что не так пошло.

Как уйти в разработку на локальной копии, а потом накатить апдейт на рабочую базу??

Как это изнутри работает, что с чем сравнивается??
...
Рейтинг: 0 / 0
Как правильно работать с миграциями в продакшене?
    #39071394
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Monochromatique,

Есть базовый скрипт создания таблиц. Всякий раз, когда делаются изменения в модели, по коаманде PM> Update-Database генереруется migration script, в папке проекта Migrations. При подключении приложения к базе EF проверяет историю прогона скриптов (в базе есть соотв. таблица) и накатывает еще не примененные. Данные при этом максимально сохраняются.
...
Рейтинг: 0 / 0
Как правильно работать с миграциями в продакшене?
    #39071460
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic HunterMonochromatique,

Есть базовый скрипт создания таблиц. Всякий раз, когда делаются изменения в модели, по коаманде PM> Update-Database генереруется migration script, в папке проекта Migrations. При подключении приложения к базе EF проверяет историю прогона скриптов (в базе есть соотв. таблица) и накатывает еще не примененные. Данные при этом максимально сохраняются.


Мээээ... Так а что делать мне?

Если ты под скриптами имеешь ввиду то, что видно в студии - то эти "скрипты" генерятся при add-migration команде.

Получается, что нужно убить (стереть из папки) все миграционные скрипты, которые применялись к тестовой базе, сгенерить новый и применить к рабочей БД?
...
Рейтинг: 0 / 0
Как правильно работать с миграциями в продакшене?
    #39071557
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Monochromatique, написали же выше: "EF проверяет историю прогона скриптов (в базе есть соотв. таблица)".

Старые скрипты убивать не надо, EF не будет их выполнять.
...
Рейтинг: 0 / 0
Как правильно работать с миграциями в продакшене?
    #39071563
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueМээээ... Так а что делать мне?Нуууу... Поднять тестовую среду, отличную от локальной, развернуть там продакшн версию базы, сделать бекап и играться.
...
Рейтинг: 0 / 0
Как правильно работать с миграциями в продакшене?
    #39071595
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Monochromatique,

гораздо интереснее вопрос, как пользоваться EF-миграциями при разработке в команде
...
Рейтинг: 0 / 0
Как правильно работать с миграциями в продакшене?
    #39076480
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttMonochromatique,

гораздо интереснее вопрос, как пользоваться EF-миграциями при разработке в команде
А в чем проблема?
...
Рейтинг: 0 / 0
Как правильно работать с миграциями в продакшене?
    #39076617
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВhVosttMonochromatique,

гораздо интереснее вопрос, как пользоваться EF-миграциями при разработке в команде
А в чем проблема?

пока не попробуешь, не узнаешь
...
Рейтинг: 0 / 0
Как правильно работать с миграциями в продакшене?
    #39076693
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttпока не попробуешь, не узнаешь
Пробовал, никаких проблем.
Если не считать того факта, что структуру БД ваяют тупые и убогие императивщики, а должны божественные базаданщики!
...
Рейтинг: 0 / 0
Как правильно работать с миграциями в продакшене?
    #39076985
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВhVosttпока не попробуешь, не узнаешь
Пробовал, никаких проблем.
Если не считать того факта, что структуру БД ваяют тупые и убогие императивщики, а должны божественные базаданщики!

Чо та толсто как-та.

Сваяешь БД лучше, чем EF?
...
Рейтинг: 0 / 0
Как правильно работать с миграциями в продакшене?
    #39077108
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВhVosttпока не попробуешь, не узнаешь
Пробовал, никаких проблем.
Если не считать того факта, что структуру БД ваяют тупые и убогие императивщики, а должны божественные базаданщики!

Если в команде 2 девелопара делают по миграции из одной и той же версии (развернутой у них локально), то потом такие миграции не встанут. Точнее встанет только одна, кто первый тот и папа. Второму придётся делать дополнительные манипуляции.
...
Рейтинг: 0 / 0
Как правильно работать с миграциями в продакшене?
    #39077140
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueЕвгенийВпропущено...

Пробовал, никаких проблем.
Если не считать того факта, что структуру БД ваяют тупые и убогие императивщики, а должны божественные базаданщики!

Чо та толсто как-та.

Сваяешь БД лучше, чем EF?Сам ещё толще :)
...
Рейтинг: 0 / 0
Как правильно работать с миграциями в продакшене?
    #39077278
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAMonochromatiqueпропущено...


Чо та толсто как-та.

Сваяешь БД лучше, чем EF?Сам ещё толще :)
+1
Только хотел что нибудь отписать.
...
Рейтинг: 0 / 0
Как правильно работать с миграциями в продакшене?
    #39077292
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Если в команде 2 девелопара делают по миграции из одной и той же версии (развернутой у них локально), то потом такие миграции не встанут. Точнее встанет только одна, кто первый тот и папа. Второму придётся делать дополнительные манипуляции.
ХЗ.
Участвовал в одном провальном проекте, так там эти миграции именовались как то от номера спринта (или как его там) + текущая дата до секунды. Никаких проблем с вставанием миграций не возникало...
...
Рейтинг: 0 / 0
Как правильно работать с миграциями в продакшене?
    #39077328
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВhVosttЕсли в команде 2 девелопара делают по миграции из одной и той же версии (развернутой у них локально), то потом такие миграции не встанут. Точнее встанет только одна, кто первый тот и папа. Второму придётся делать дополнительные манипуляции.
ХЗ.
Участвовал в одном провальном проекте, так там эти миграции именовались как то от номера спринта (или как его там) + текущая дата до секунды. Никаких проблем с вставанием миграций не возникало...

Ээммм... секунды тут не при чём, миграция основывается на конкретной предыдущей миграции. Я не в курсе какие у вас там были миграции, но Entity Framework хрен даст тебе сунуть свою миграцию, если кто-то постарался и успел сунуть свою. Не имеет значения ни номер спринта, ни дата до секунды, -- и это очень правильно.

Сама миграция стряпается на основе изменений, которые ты сделал и текущего состояния СУБД. Если же текущее состояние неизвестно (кто знает какие изменения нахреначили другие участники команды за один и тот же этап??), то невозможно сделать правильную миграцию.
...
Рейтинг: 0 / 0
Как правильно работать с миграциями в продакшене?
    #39077339
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
А понятно. БД одна общая на всех?
У нас были отдельные локальные БД у каждого и каждый раз когда нужно было накатить, в БД все грохалось и начинало накатываться сначала, последовательно по номерам миграций.
...
Рейтинг: 0 / 0
Как правильно работать с миграциями в продакшене?
    #39077380
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttEntity Framework хрен даст тебе сунуть свою миграцию, если кто-то постарался и успел сунуть свою. Не имеет значения ни номер спринта, ни дата до секунды, -- и это очень правильно.
Прямо как в лучшие времена Visual SourceSafe.
...
Рейтинг: 0 / 0
Как правильно работать с миграциями в продакшене?
    #39077392
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НахлобучПрямо как в лучшие времена Visual SourceSafe.
У нас этот раритет до сих пор юзают :)
...
Рейтинг: 0 / 0
Как правильно работать с миграциями в продакшене?
    #39077499
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttСама миграция стряпается на основе изменений, которые ты сделал и текущего состояния СУБД. Если же текущее состояние неизвестно (кто знает какие изменения нахреначили другие участники команды за один и тот же этап??), то невозможно сделать правильную миграцию.
Возможно, но очень сложно.
...
Рейтинг: 0 / 0
Как правильно работать с миграциями в продакшене?
    #39077500
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВskyANAпропущено...
Сам ещё толще :)
+1
Только хотел что нибудь отписать.

Так как тебя EF-от ограничивает?

или

Что делает убогий императивщик?

А что сделает божественный дб-щик?

На каком-нибудь примере.
...
Рейтинг: 0 / 0
Как правильно работать с миграциями в продакшене?
    #39077636
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Monochromatique
Что делает убогий императивщик?

А что сделает божественный дб-щик?

На каком-нибудь примере.
Ну к примеру запрос - выдернуть всех чильдов.
Имперетивщик будет дергать в цикле или рекурсивно.
Базаданщик сделает хранимую процедуру.
А я сделаю функцию возвращающую табличное выражение ибо ее можно дернуть через LINQ.
...
Рейтинг: 0 / 0
Как правильно работать с миграциями в продакшене?
    #39077643
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВhVostt,
А понятно. БД одна общая на всех?
У нас были отдельные локальные БД у каждого и каждый раз когда нужно было накатить, в БД все грохалось и начинало накатываться сначала, последовательно по номерам миграций.

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

Например, я переименовываю поле, а ты добавляешь это поле в индекс. Если твоя миграция пойдёт первой, то всё будет ок, а если наоборот, твоя сломается. И это самый простой случай. Часто миграции не только DDL, но ещё и с изменениями самих данных, тут вообще можно так накосячить, что не сразу об этом узнаешь. Именно поэтому не связанные друг с другом миграции -- зло, и не допустимо. ЧТобы пропихнуть свою миграцию, ты должен вытащить все имеющиеся, и получив актуальное состояние, сунуть свою. И так у каждого разработчика. Не важно общая БД или у каждого локальная, разницы никакой. Для EF имеются такие практики, как последовательная заливка своих миграций, с прогоном по общей базе в TeamCity, с тестами и прочим.
...
Рейтинг: 0 / 0
Как правильно работать с миграциями в продакшене?
    #39077647
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВБазаданщик сделает хранимую процедуру.

В лес таких базаданщиков. Если он не собирается написать хранимку сразу под все популярные СУБД и потом успешно поддерживать их.
...
Рейтинг: 0 / 0
Как правильно работать с миграциями в продакшене?
    #39077734
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttЕвгенийВБазаданщик сделает хранимую процедуру.

В лес таких базаданщиков. Если он не собирается написать хранимку сразу под все популярные СУБД и потом успешно поддерживать их.
Сколько коммерчески успешных ПП реализованы под несколько СУБД?
...
Рейтинг: 0 / 0
Как правильно работать с миграциями в продакшене?
    #39077740
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВНу к примеру запрос - выдернуть всех чильдов.

В смысле выдернуть всех чильдов?

Давай на примере

-Отдел
---Сотрудник
-----Выданный ТМЦ

Кто их них чильд, и что значит ВЫДЕРНУТЬ?
...
Рейтинг: 0 / 0
25 сообщений из 92, страница 1 из 4
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как правильно работать с миграциями в продакшене?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]