Я ищу инструмент сравнения схем баз данных, который работает в Linux, обрабатывает базы данных Oracle и может генерировать сценарий синхронизации для переноса одной схемы в другую. TOAD отлично справляется с этой задачей в Windows, но не работает в Linux. Свободный и открытый исходный код предпочтительнее, но не требуется. Также было бы неплохо, если бы он был скриптовым, например, позволяя запускать его как задание cron. Что-нибудь в этом роде?
Кстати, я посмотрел на собственный инструмент Oracle SQL Developer, и, хотя он поддерживает сравнения, в моих тестах было много ложных срабатываний. Например, он помечает идентичные внешние ключи как разные.
Пытаться SchemaCrawler, мой бесплатный инструмент командной строки с открытым исходным кодом, написанный на Java. Он не зависит от ОС и базы данных. Он предназначен для поиска различий между схемами (и даже данными). Существуют интерфейсы JavaScript и языка шаблонов, которые можно использовать для создания собственных скриптов.
Я потратил много времени на поиски чего-то похожего и так и не нашел полностью удовлетворительного решения. При этом вы можете найти Liquibase (www.liquibase.org) как полезный.
Поиск в Google для "инструмент сравнения схем" произвел этот инструмент, доступный на сайте dbsolo.com. URL-адрес сайта: www.dbsolo.com/schema_comparison.html. У меня пока недостаточно прав для публикации реальной ссылки, извините.
Это коммерческий инструмент, но он утверждает, что может сравнивать схемы для этих баз данных: Oracle, SQL Server, DB2, PostgreSQL, MySQL и Sybase ASE / ASA.
Кроме того, он работает на следующих платформах: Windows, Linux, MacOS и Solaris.
Я не могу одобрить его, так как никогда не пробовал, но он включает 30-дневную бесплатную демонстрацию, чтобы вы могли попробовать его, чтобы увидеть, соответствует ли он вашим потребностям.
Есть много инструментов, удовлетворительных в разной степени, но ни один не идеален :(
Я использую Aqua Data Studio, поскольку он написан на чистом java и может подключаться к большинству баз данных.
DBSA (Анализ структуры базы данных) это инструмент для сравнения снимков схем. Сообщается о различиях, и может быть сгенерирован SQL-патч. Он включает в себя базовое средство репозитория для отслеживания истории схемы.
я считать инструмент, который вам нужен Oracle Data Pump. Я болтаю об этом, потому что Oracle предоставляет для этого хороший учебник Вот. В частности, инструменты ...
Чтобы сделать "разницу" между двумя таблицами (с одинаковыми столбцами), между двумя отдельными базами данных ...
Select table_name from dba_tables \
where owner='OWNER_NAME' \
minus \
select table_mame from dba_tables@remote_database \
where owner='OWNER_NAME'
Очевидно, вам необходимо создать ссылку на базу данных в первой базе данных. Это, вероятно, лишь частичное решение того, что вам нужно, но я не могу придумать ничего лучшего. :)