Клиент SQL Server - синхронизация базы данных сервера со схемой
У меня есть C#.net приложение, которое использует онлайн-сервер БД и даже локальный сервер.
Если пользователь больше не подключен к Интернету, он может использовать автономный сервер на своем локальном компьютере. но перед использованием автономного сервера он должен синхронизировать сетевой сервер с автономным.
В настоящее время существует модель на основе хранимых процедур для получения и вывода данных. Так как мое приложение является бета-версией, я время от времени получаю много изменений схемы в базе данных сервера. Поэтому каждый раз, когда мне нужно вручную запустить изменения схемы на моем локальном компьютере, или мне нужно взять сценарий развертывания изменений схемы и заставить приложение применить эту схему к локальной базе данных перед синхронизацией.
Время занимает много времени и дополнительные накладные расходы.
Каков наилучший подход для синхронизации даже схемы и данных. Могу ли я пойти на репликацию?
В моем случае мне нужно только онлайн онлайн для автономной синхронизации. наоборот не требуется.
1 ответ
Репликация не будет работать, так как вы должны указать схему заранее. Вы можете попробовать что-то вроде сравнения Redgate, но это не бесплатно:
http://www.red-gate.com/products/sql-development/sql-compare/
Или вы можете попробовать что-то вроде FluentMigrator, библиотеки миграции базы данных для.net:
https://github.com/schambers/fluentmigrator
Другой альтернативой будет Open DBDiff:
http://opendbiff.codeplex.com/
Опять же, еще один бесплатный:
Последний имеет утилиту командной строки для автоматического сравнения и синхронизации данных.