У меня есть база данных, которую я пытаюсь сохранить в системе управления версиями, используя Visual Studio, проект базы данных. Я использую файл .scmp для синхронизации c из моей производственной базы данных в проекте для регулярных обновлений.
Моя проблема в том, что я использую переменные sql cmd в моей контролируемой версии sql. Например,
SELECT * FROM [$(OtherServer)].[$(VariableOne)].Foo.Bar
Когда мне нужно развернуть к своей цели, я передаю значения в переменные, и все хорошо.
Однако, когда я запускаю сравнение производства с контролем версий в Visual Studio, я увижу diff, который выглядит следующим образом
SELECT * FROM [ServerOne].[DatabaseOne].Foo.Bar
vs
SELECT * FROM [$(OtherServer)].[$(VariableOne)].Foo.Bar
Я действительно не очень много знаю о конфигурации файла .scmp. Есть ли параметр, который я могу установить, чтобы разрешить поиск / заменить, чтобы я мог повторно вставить мои переменные sqlcmd, прежде чем сравнение будет сделано? Или, если это не так, является ли он достаточно расширяемым, чтобы разрешить запуск сценариев перед сравнением?
РЕДАКТИРОВАТЬ: после возни с некоторыми решениями, я решил
- создать пустой проект
- syn c текущее состояние подталкивания к этому проекту
- запустите sed над каталогом этого проекта, запустив гигантский поиск / замену
- syn c проект sed'd для моего первоначального проекта
Это кажется хак и плохо, но я укажу, что у меня это сработало. Оставим вопрос на время, если найдется лучшее решение.