Есть ли инструмент для создания полной базы данных 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)
Ответ 6
попробуйте этот инструмент на основе python: Еще один script для разделения дампов PostgreSQL в объектных файлах
Ответ 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