Резервное копирование базы данных с Entity Framework на ASP.Net
У меня интересный случай. Я потерял доступ к подписке Azure. Однако у меня все еще есть доступ к публикации приложения ASP.Net, потому что я настроил профиль публикации, который по-прежнему работает. Обратите внимание, что в этом нет ничего незаконного - внутренняя политика компании в отношении подписок VS; Достаточно сказать, что это приложение мое, написано мной, поддерживается мной и т. д.
Мне нужно создать резервную копию базы данных, но единственное, что я могу сделать, это опубликовать приложение. Очевидно, что в настройках приложения встроена строка подключения, но я не могу подключиться к базе данных из-за настроек брандмауэра (только для служб Azure). Поэтому мне нужно найти способ сбросить данные с помощью контроллера и действия.
Пока мне удалось сбросить большинство таблиц вручную (например,
var data = context.Table.ToList();
), а затем вывести результаты в поле зрения. Однако это не будет экспортировать внутренние таблицы ASP.Net, к которым я не могу получить доступ напрямую (например, утверждения пользователей / ролей и т. Д.)
Имейте в виду, что мы говорим об Azure SQL, который отличается от обычного SQL Server.
Как сделать резервную копию базы данных, чтобы перенести приложение в другую подписку?
1 ответ
Если вы также можете опубликовать свой webapp. Вы можете создать
API
функцию и вызвать ее. Что-то вроде: https://yourwebsite.azurewebsites.net/backup/start.
Вы можете создать
PROCEDURE
и запустите его, чтобы сгенерировать
.bak
файл в BLOB-объект (предполагается, что вам необходимо знать информацию, относящуюся к BLOB-объекту).
Пример кода вроде: