2015-04-28 2 views
1

У меня есть сайт, который работает в Azure, используя базу данных Azure. Тем не менее, моя база данных разработки - это файл . Поскольку данные постоянно меняются в базе данных Azure, я хотел бы иметь возможность захватить моментальный снимок данных, чтобы иметь более новое представление данных в моем локальном файле .mdf. Поскольку мой код также вставляет данные в базу данных, я не могу просто подключиться к производственной базе данных с моей локальной машины.Синхронизировать файл .MDF с базой данных сервера T-SQL

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

Возможно ли каким-либо образом преобразовать базу данных в базу данных SQL Server в Microsoft SQL Server Management Studio в файл .mdf? Или есть запрос, который синхронизирует данные, скопировав их из одной и в другую базу данных?

Одна из причин, по которой я хочу синхронизировать базу данных Azure с моим файлом .mdf, заключается в том, что мне не нужно упаковывать в исходный контроль (они могут быть довольно большими), а генерировать один раз в любое время базу данных .mdf для тестирования. Я бы предпочел не иметь удаленную тестовую базу данных для подключения к разработке, если мне это не нужно.

Кажется, что у меня есть сложные вещи для себя. Есть ли более эффективные подходы к этому, чем использование базы данных .mdf? Существует ли другой подход к дублированию производственной базы данных для тестирования?

ответ

3

Это то, что я хотел бы сделать:

  • Храните вашу базу данных в SSDT проекта базы данных
  • Чтобы сделать это, скачать SSDT (https://msdn.microsoft.com/data/hh297027) вам нужно будет либо иметь Visual Studio или может использовать Visual Studio express
  • Импортируйте свою базу данных, вы можете прикрепить свой .mdf и использовать мастер импорта, чтобы получить код (щелкните правой кнопкой мыши по проекту ssdt и импортируйте -> База данных)
  • Если у вас есть статические данные или справочные данные затем используйте sp_generate_merge (https://github.com/readyroll/generate-sql-merge), чтобы сгенерировать оператор слияния для каждой таблицы - добавьте их в сценарий пост-развертывания в проекте
  • Если вы хотите развернуть либо использовать функции публикации в SSDT, либо sqlpackage.exe - я бы убедился, что вы тщательно протестировали это перед нажав на вашу производственную базу данных.
  • Если вы хотите проверить на новую машину просто опубликовать свой код в свой новый экземпляр Dev и начать использовать его - вы можете иметь отдельный скрипт для создания некоторых тестовых данных и т.д.

Выполнение этого означает, что вы действительно можете отслеживать изменения в управлении источником, и получаете автоматическую систему развертывания БЕСПЛАТНО.

Это не даст вам моментальный снимок производственных данных, чтобы вы могли создать пакет SIS, который копирует все необходимые вам таблицы. Но для тестирования вы должны быть способны (и действительно, многие из нас do) просто используйте чистую базу данных для разработки/тестирования и просто вытаскивайте определенные биты данных, когда мы отлаживаем проблемы.

Смежные вопросы