Member 11110990 Ответов: 1

Как настроить несколько версий приложения MVC saas с одной базой данных SQL


Привет
Я создаю приложение saas с несколькими тенденциями, используя Asp.net(MVC) с базой данных SQL.

Каждую неделю я хочу выпускать новую версию для пользователей, поэтому url-адрес моего приложения будет выглядеть так
v1.mydomain.com, v2.mydomain.com, v3.mydomain.com и так далее.

Пользователь может использовать любые версии, исходя из своих потребностей.
если в новой версии есть ошибки, он может перейти к предыдущим версиям
если пользователь в порядке с V1, то он будет использовать Version1 (v1.mydomain.com)

Но у нас есть только одна база данных для всех версий, проблема заключается в том, что **изменения таблиц SQL server и изменения процедур**

Например :
В таблице клиентов V1 у нас есть 15 столбцов.
В версии V2 мы добавили 5 столбцов
В V3 мы добавили 3 столбца

мы используем хранимую процедуру для выполнения всех наших операций с базой данных.
В V1,

из кода мы передаем 15 параметров => db также имеет 15 параметров
В V2,

из кода мы передаем 15 параметров => Нам нужно изменить связанный сохраненный proceudre как 15 параметров.

V1 здесь заявки пройдет всего 11 параметров, теперь В1 приложение получает сообщение об ошибке.

Я не смог найти то, что искал.

Как мы можем использовать одну базу данных для нескольких версий приложений, есть ли какой-либо способ сделать это.

Что я уже пробовал:

what is the best way for this?

Nathan Minier

Единственный способ сделать это безопасно-это никогда не удалять и не перекраивать столбцы. Если вы этого не сделаете, вы можете просто ограничить свои запросы соответствующей версией приложения.

Честно говоря, однако, ваша стратегия непрерывного выпуска звучит как нечто такое, чего я бы активно избегал как потребитель.

1 Ответов

Рейтинг:
1

Gerry Schmitz

Используйте другой "уровень доступа к данным" (DAL) для каждой версии.

Те же вызовы; те же хранимые процедуры (SP).

DAL v1 и v2 предоставляют параметры SP по умолчанию для ORM / физического уровня для тех parms, которые они не поддерживают.

Dal предоставляются в виде отдельных DLL-файлов; с соответствующими интерфейсами и объектами передачи данных (по крайней мере, в разделе "Имя").

(Или измените ваши текущие методы "доступа к данным", чтобы разрешить "параметры по умолчанию"; это означает, что код вызывающего абонента не меняется, а только сигнатуры вызываемого метода).