Міграція БД та слоти розгортання Azure


16

Я планую надіслати нову веб-програму службі веб-додатків Azure (колишній веб-сайт Azure). Я хотів би скористатися слотами для розгортання, щоб мати можливість протестувати моє розгортання, перш ніж підштовхувати його до виробництва. Це все добре, доки не потрібно зміни схеми БД. Але якщо є зміна схеми, я не можу мати дві версії програмного забезпечення, що працюють на одній версії db. Оскільки я використовую EF Migrations, натискання на слот для постановки миттєво призведе до оновлення БД до останньої версії.

Отже, моє запитання полягає в тому, чи застосовується слоти для розгортання, коли потрібна міграція db?

Як це робиться для великих постачальників SaaS. Чи проводять миттєву міграцію БД нову версію? Це, безумовно, призведе до простоїв.

Я можу лише думати про досить складні рішення цієї проблеми, чи є щось просте?


Отже, у вас немає бази даних розробників?
JeffO

Так, у нас є система розробки та якості. Описана вище система призначена для виробничих цілей.
Сам7

@ Sam7 чи вдалося вам знайти рішення цього питання? Ура
WestDiscGolf

Боюся, що немає. Зараз ми тестуємо зміни міграції в окремому середовищі.
Сам7,

@ Sam7: я думаю, ти можеш цим керувати відокремленим .config-файлом із власною рядком підключення до db. але ви праві, коли розгортаєтеся від етапу до виробництва, користь відкату вже не працює. зміни DB будуть застосовуватися миттєво. Мені цікаво рішення найближчим часом ...
Роджер С.

Відповіді:


3

Можливі випуски з простою простою за допомогою службових слотів служби Azure App і однієї бази даних, спільною програмою Staging and Production, але потрібно впевнитись, що всі зміни бази даних зворотно сумісні, таким чином, що поточна та нова версії веб-програми можуть одночасно працювати в Постановочні та виробничі слоти.

Деякі правила, які забезпечують це:

  • Будь-які нові стовпці бази даних повинні бути нульовими або мати значення за замовчуванням
  • Перейменування стовпців заборонено
  • Видалення стовпців заборонено

Коли вам потрібно внести деструктивні зміни, такі як перейменування або випадання стовпців, для цього вам потрібні два випуски:

  1. Слід випустити нову версію веб-програми, яка знімає залежність від перейменованих / відкинутих стовпців
  2. Здійснюється додатковий випуск, який виконує руйнівні зміни

Хоча це звучить трохи складно, на практиці ви, ймовірно, не будете робити деструктивні зміни дуже часто.


0

Ви подивилися елементи конфігурації для конкретних ігор? У розділі WebApp / Settings / Settings Settings можна вказати параметри веб-програми, але також визначити, чи застосовується воно лише до цього слота.

Таким чином, ви можете мати для підключення слота для конкретного слота і застосувати міграцію також до слотів для заміни.


2
Це суперечить моїй ідеї про те, щоб сайт постановки працював з таким же набором даних (-> база даних), як і виробництво.
Сам7
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.