Существует ли инструмент для создания полной базы данных DDL для SQL Server? Что насчет Postgres и MySQL? - PullRequest
16 голосов
/ 18 декабря 2009

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

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

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

У меня нет никаких предпочтений относительно того, является ли этот инструмент открытым или коммерческим.

Ответы [ 8 ]

33 голосов
/ 18 декабря 2009

Для SQL Server :

В SQL Server Management Studio щелкните правой кнопкой мыши свою базу данных и выберите «Задачи» -> «Создать сценарии».

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

7 голосов
/ 19 декабря 2009

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

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

6 голосов
/ 18 декабря 2009

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

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

$ mysqldump [параметры] - базы данных db_name1 [db_name2 db_name3 ...]

$ mysqldump [опции] --all-database

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

3 голосов
/ 18 декабря 2009

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

2 голосов
/ 22 мая 2017

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

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

Вот пример того, что вы можете использовать для сценария схемы базы данных и данных в файл. 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

2 голосов
/ 18 декабря 2009

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

0 голосов
/ 06 апреля 2017

После того, что сказал Даниэль Вассалло, это сработало для меня:

pg_dump -f c:\filename.sql -C -n public -O -s -d Moodle3.1 -h localhost -p 5432 -U postgres -w
0 голосов
/ 15 марта 2017
...