|
Как правильно работать с миграциями в продакшене?
|
|||
---|---|---|---|
#18+
База уходит в работу и её вот так вот запросто уже не грохнешь, если что не так пошло. Как уйти в разработку на локальной копии, а потом накатить апдейт на рабочую базу?? Как это изнутри работает, что с чем сравнивается?? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2015, 00:46 |
|
Как правильно работать с миграциями в продакшене?
|
|||
---|---|---|---|
#18+
Monochromatique, Есть базовый скрипт создания таблиц. Всякий раз, когда делаются изменения в модели, по коаманде PM> Update-Database генереруется migration script, в папке проекта Migrations. При подключении приложения к базе EF проверяет историю прогона скриптов (в базе есть соотв. таблица) и накатывает еще не примененные. Данные при этом максимально сохраняются. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2015, 01:08 |
|
Как правильно работать с миграциями в продакшене?
|
|||
---|---|---|---|
#18+
Relic HunterMonochromatique, Есть базовый скрипт создания таблиц. Всякий раз, когда делаются изменения в модели, по коаманде PM> Update-Database генереруется migration script, в папке проекта Migrations. При подключении приложения к базе EF проверяет историю прогона скриптов (в базе есть соотв. таблица) и накатывает еще не примененные. Данные при этом максимально сохраняются. Мээээ... Так а что делать мне? Если ты под скриптами имеешь ввиду то, что видно в студии - то эти "скрипты" генерятся при add-migration команде. Получается, что нужно убить (стереть из папки) все миграционные скрипты, которые применялись к тестовой базе, сгенерить новый и применить к рабочей БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2015, 08:28 |
|
Как правильно работать с миграциями в продакшене?
|
|||
---|---|---|---|
#18+
Monochromatique, написали же выше: "EF проверяет историю прогона скриптов (в базе есть соотв. таблица)". Старые скрипты убивать не надо, EF не будет их выполнять. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2015, 09:58 |
|
Как правильно работать с миграциями в продакшене?
|
|||
---|---|---|---|
#18+
MonochromatiqueМээээ... Так а что делать мне?Нуууу... Поднять тестовую среду, отличную от локальной, развернуть там продакшн версию базы, сделать бекап и играться. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2015, 10:00 |
|
Как правильно работать с миграциями в продакшене?
|
|||
---|---|---|---|
#18+
Monochromatique, гораздо интереснее вопрос, как пользоваться EF-миграциями при разработке в команде ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2015, 10:18 |
|
Как правильно работать с миграциями в продакшене?
|
|||
---|---|---|---|
#18+
hVosttMonochromatique, гораздо интереснее вопрос, как пользоваться EF-миграциями при разработке в команде А в чем проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2015, 12:58 |
|
Как правильно работать с миграциями в продакшене?
|
|||
---|---|---|---|
#18+
ЕвгенийВhVosttMonochromatique, гораздо интереснее вопрос, как пользоваться EF-миграциями при разработке в команде А в чем проблема? пока не попробуешь, не узнаешь ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2015, 14:53 |
|
Как правильно работать с миграциями в продакшене?
|
|||
---|---|---|---|
#18+
hVosttпока не попробуешь, не узнаешь Пробовал, никаких проблем. Если не считать того факта, что структуру БД ваяют тупые и убогие императивщики, а должны божественные базаданщики! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2015, 16:12 |
|
Как правильно работать с миграциями в продакшене?
|
|||
---|---|---|---|
#18+
ЕвгенийВhVosttпока не попробуешь, не узнаешь Пробовал, никаких проблем. Если не считать того факта, что структуру БД ваяют тупые и убогие императивщики, а должны божественные базаданщики! Чо та толсто как-та. Сваяешь БД лучше, чем EF? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2015, 21:44 |
|
Как правильно работать с миграциями в продакшене?
|
|||
---|---|---|---|
#18+
ЕвгенийВhVosttпока не попробуешь, не узнаешь Пробовал, никаких проблем. Если не считать того факта, что структуру БД ваяют тупые и убогие императивщики, а должны божественные базаданщики! Если в команде 2 девелопара делают по миграции из одной и той же версии (развернутой у них локально), то потом такие миграции не встанут. Точнее встанет только одна, кто первый тот и папа. Второму придётся делать дополнительные манипуляции. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2015, 07:29 |
|
Как правильно работать с миграциями в продакшене?
|
|||
---|---|---|---|
#18+
MonochromatiqueЕвгенийВпропущено... Пробовал, никаких проблем. Если не считать того факта, что структуру БД ваяют тупые и убогие императивщики, а должны божественные базаданщики! Чо та толсто как-та. Сваяешь БД лучше, чем EF?Сам ещё толще :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2015, 08:22 |
|
Как правильно работать с миграциями в продакшене?
|
|||
---|---|---|---|
#18+
skyANAMonochromatiqueпропущено... Чо та толсто как-та. Сваяешь БД лучше, чем EF?Сам ещё толще :) +1 Только хотел что нибудь отписать. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2015, 10:26 |
|
Как правильно работать с миграциями в продакшене?
|
|||
---|---|---|---|
#18+
hVostt Если в команде 2 девелопара делают по миграции из одной и той же версии (развернутой у них локально), то потом такие миграции не встанут. Точнее встанет только одна, кто первый тот и папа. Второму придётся делать дополнительные манипуляции. ХЗ. Участвовал в одном провальном проекте, так там эти миграции именовались как то от номера спринта (или как его там) + текущая дата до секунды. Никаких проблем с вставанием миграций не возникало... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2015, 10:33 |
|
Как правильно работать с миграциями в продакшене?
|
|||
---|---|---|---|
#18+
ЕвгенийВhVosttЕсли в команде 2 девелопара делают по миграции из одной и той же версии (развернутой у них локально), то потом такие миграции не встанут. Точнее встанет только одна, кто первый тот и папа. Второму придётся делать дополнительные манипуляции. ХЗ. Участвовал в одном провальном проекте, так там эти миграции именовались как то от номера спринта (или как его там) + текущая дата до секунды. Никаких проблем с вставанием миграций не возникало... Ээммм... секунды тут не при чём, миграция основывается на конкретной предыдущей миграции. Я не в курсе какие у вас там были миграции, но Entity Framework хрен даст тебе сунуть свою миграцию, если кто-то постарался и успел сунуть свою. Не имеет значения ни номер спринта, ни дата до секунды, -- и это очень правильно. Сама миграция стряпается на основе изменений, которые ты сделал и текущего состояния СУБД. Если же текущее состояние неизвестно (кто знает какие изменения нахреначили другие участники команды за один и тот же этап??), то невозможно сделать правильную миграцию. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2015, 10:55 |
|
Как правильно работать с миграциями в продакшене?
|
|||
---|---|---|---|
#18+
hVostt, А понятно. БД одна общая на всех? У нас были отдельные локальные БД у каждого и каждый раз когда нужно было накатить, в БД все грохалось и начинало накатываться сначала, последовательно по номерам миграций. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2015, 11:00 |
|
Как правильно работать с миграциями в продакшене?
|
|||
---|---|---|---|
#18+
hVosttEntity Framework хрен даст тебе сунуть свою миграцию, если кто-то постарался и успел сунуть свою. Не имеет значения ни номер спринта, ни дата до секунды, -- и это очень правильно. Прямо как в лучшие времена Visual SourceSafe. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2015, 11:24 |
|
Как правильно работать с миграциями в продакшене?
|
|||
---|---|---|---|
#18+
НахлобучПрямо как в лучшие времена Visual SourceSafe. У нас этот раритет до сих пор юзают :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2015, 11:31 |
|
Как правильно работать с миграциями в продакшене?
|
|||
---|---|---|---|
#18+
hVosttСама миграция стряпается на основе изменений, которые ты сделал и текущего состояния СУБД. Если же текущее состояние неизвестно (кто знает какие изменения нахреначили другие участники команды за один и тот же этап??), то невозможно сделать правильную миграцию. Возможно, но очень сложно. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2015, 12:47 |
|
Как правильно работать с миграциями в продакшене?
|
|||
---|---|---|---|
#18+
ЕвгенийВskyANAпропущено... Сам ещё толще :) +1 Только хотел что нибудь отписать. Так как тебя EF-от ограничивает? или Что делает убогий императивщик? А что сделает божественный дб-щик? На каком-нибудь примере. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2015, 12:47 |
|
Как правильно работать с миграциями в продакшене?
|
|||
---|---|---|---|
#18+
Monochromatique Что делает убогий императивщик? А что сделает божественный дб-щик? На каком-нибудь примере. Ну к примеру запрос - выдернуть всех чильдов. Имперетивщик будет дергать в цикле или рекурсивно. Базаданщик сделает хранимую процедуру. А я сделаю функцию возвращающую табличное выражение ибо ее можно дернуть через LINQ. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2015, 13:57 |
|
Как правильно работать с миграциями в продакшене?
|
|||
---|---|---|---|
#18+
ЕвгенийВhVostt, А понятно. БД одна общая на всех? У нас были отдельные локальные БД у каждого и каждый раз когда нужно было накатить, в БД все грохалось и начинало накатываться сначала, последовательно по номерам миграций. Это тоже не имеет значения. Такой подход как ты говоришь будет работать только, если каждый разработчик делает изменения, никак не связанные с изменениями других людей. Например, я переименовываю поле, а ты добавляешь это поле в индекс. Если твоя миграция пойдёт первой, то всё будет ок, а если наоборот, твоя сломается. И это самый простой случай. Часто миграции не только DDL, но ещё и с изменениями самих данных, тут вообще можно так накосячить, что не сразу об этом узнаешь. Именно поэтому не связанные друг с другом миграции -- зло, и не допустимо. ЧТобы пропихнуть свою миграцию, ты должен вытащить все имеющиеся, и получив актуальное состояние, сунуть свою. И так у каждого разработчика. Не важно общая БД или у каждого локальная, разницы никакой. Для EF имеются такие практики, как последовательная заливка своих миграций, с прогоном по общей базе в TeamCity, с тестами и прочим. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2015, 13:58 |
|
Как правильно работать с миграциями в продакшене?
|
|||
---|---|---|---|
#18+
ЕвгенийВБазаданщик сделает хранимую процедуру. В лес таких базаданщиков. Если он не собирается написать хранимку сразу под все популярные СУБД и потом успешно поддерживать их. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2015, 13:59 |
|
Как правильно работать с миграциями в продакшене?
|
|||
---|---|---|---|
#18+
hVosttЕвгенийВБазаданщик сделает хранимую процедуру. В лес таких базаданщиков. Если он не собирается написать хранимку сразу под все популярные СУБД и потом успешно поддерживать их. Сколько коммерчески успешных ПП реализованы под несколько СУБД? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2015, 15:05 |
|
|
start [/forum/topic.php?fid=17&msg=39076617&tid=1349422]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
207ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 327ms |
0 / 0 |