Есть ли инструмент для создания полной базы данных DDL для SQL Server? Что относительно Postgres и MySQL?

Используя Toad для Oracle, я могу генерировать полные файлы DDL, описывающие все таблицы, представления, исходный код (процедуры, функции, пакеты), последовательности и гранты схемы Oracle. Отличная особенность заключается в том, что он разделяет каждое объявление DDL на разные файлы (файл для каждого объекта, будь то таблица, процедура, представление и т.д.), Поэтому я могу написать код и посмотреть структуру базы данных без соединения с БД, Другое преимущество работы с файлами DDL заключается в том, что мне не нужно подключаться к базе данных для генерации DDL каждый раз, когда мне нужно просматривать определения таблиц. В Toad для Oracle способ сделать это - перейти в базу данных → Экспорт и выбрать соответствующий пункт меню в зависимости от того, что вы хотите экспортировать. Это дает вам хорошее представление о базе данных в тот момент времени.

Есть ли "пакетный" инструмент, который экспортирует - все таблицы DDL (включая индексы, проверки/ссылочные ограничения)
- весь исходный код (отдельные файлы для каждой процедуры, функции)
- все мнения
- все последовательности от SQL Server?

Как насчет PostgreSQL?
Что насчет MySQL?
Что насчет Энгрса?

У меня нет предпочтения относительно того, является ли инструмент Open Source или Commercial.

Ответы

Ответ 1

В PostgreSQL просто используйте параметр -s для pg_dump. Вы можете получить его как простой sql script (один файл для всей базы данных) в пользовательском формате, который затем вы можете выбросить script at, чтобы получить один файл на объект, если вы этого хотите.

Инструмент PgAdmin также покажет вам каждый дамп SQL-объекта, но я не думаю, что там есть хороший способ получить их оттуда сразу.

Ответ 2

Для SQL Server:

В SQL Server Management Studio щелкните правой кнопкой мыши по базе данных и выберите "Задачи" → "Сгенерировать скрипты".

Вам будет предложено выбрать объекты DDL для включения в ваш script.

Ответ 3

Для mysql я использую mysqldump. Команда довольно проста.

$mysqldump [параметры] db_name [таблицы]

$mysqldump [options] --databases db_name1 [db_name2 db_name3...]

$mysqldump [options] --all-databases

Множество вариантов для этого. Посмотрите здесь для хорошей справки.

Ответ 4

У MySQL есть отличный инструмент под названием MySQL workbench, который позволяет вам перестраивать и переделывать базы данных, а также синхронизировать, что мне очень нравится. Вы можете просмотреть DDL при выполнении этих функций.

Ответ 5

Я написал SMOscript, который делает то, что вы просите (ссылаясь на MSSQL Server)

Ответ 7

Следуя словам Даниила Вассалло, это сработало для меня:

pg_dump -f c:\filename.sql -C -n public -O -s -d Moodle3.1 -h localhost -p 5432 -U postgres -w

Ответ 8

В дополнение к мастеру "Сгенерировать скрипты" в SSMS теперь вы можете использовать mssql-scripter, который является инструментом командной строки для генерации сценариев DDL и DML.

Это инструмент с открытым исходным кодом и Python, который вы можете установить через: pip install mssql-scripter.

Вот пример того, что вы можете использовать для script схемы базы данных и данных в файле. mssql-scripter -S localhost -d AdventureWorks -U sa --schema-and-data > ./adventureworks.sql Дополнительные рекомендации: https://github.com/Microsoft/sql-xplat-cli/blob/dev/doc/usage_guide.md

И вот ссылка на репозиторий GitHub: https://github.com/Microsoft/sql-xplat-cli