У меня очень похожие потребности (в настоящее время я использую PostgreSQL в Linux), и, если это необязательно команда ms-sql, у меня есть 2 возможных решения:
Решение 1: Используйте mssql-scripter от Microsoft (https://github.com/Microsoft/mssql-scripter). Вы можете получить mssql-scripter, например, через
pip install mssql-scripter.
и выполнить следующие команды:
$ mssql-scripter -S serverName -d databaseSource -U user > ./source.sql
$ mssql-scripter -S serverName -d databaseTarget -U user > ./target.sql
$ diff source.sql target.sql
Решение 2: Если у вас есть возможность использовать среду рабочего стола (как я делаю), я бы использовал инструменты сравнения, которые, на мой взгляд, намного более удобны для пользователя.
TiCodeX SQL SchemaСравнить (https://www.ticodex.com) Это хороший инструмент, который работает в Linux, Windows и Mac и может сравнивать схемы баз данных MS-SQL, MySQL и PostgreSQL. Простой в использовании и эффективный. Он может вам помочь.
Для того, чтобы использовать его:
- Настройте исходную базу данных (указав имя сервера, имя пользователя, пароль и т. Д.)
- Настройте целевую базу данных
- Есть варианты, если вы хотите исключить объекты базы данных или изменитьВывод
- Нажмите кнопку сравнения
. Вы получите различия между двумя базами данных, и, в конце концов, вы также получите сценарии миграции, чтобы сделать целевую базу данных идентичной исходной.