MySql схема экспорта без данных

492

Я использую базу данных MySql с Java-программой, теперь я хочу передать программу кому-то другому.

Как экспортировать структуру базы данных MySql без данных, только структура?

Дарт Блю Рэй
источник

Ответы:

963

Вы можете сделать это с --no-dataпомощью команды mysqldump

mysqldump -u root -p --no-data dbname > schema.sql
Daric
источник
11
ИМХО, mysqldumpэто лучший ответ. MySQL Administrator заброшен, и MySQL Workbench все еще довольно глючит.
Альваро Гонсалес
49
Также рассмотрите возможность использования --single-transactionопции, если вы не хотите или не можете делать блокировки таблиц.
Джим
47
-d это - нет данных для краткости.
Marstone
36
Также рассмотрите возможность добавления --routines, если в вашей базе данных есть хранимые процедуры / функции
crafterm
15
По умолчанию это не включает CREATE DATABASEкоманду. Чтобы включить, заменить dbnameна --databases dbname(сокращение:) -B dbname. Затем, чтобы импортировать на другой сервер, используйтеmysql -u root -p < schema.sql
Sean
88

Да, вы можете использовать mysqldumpс --no-dataопцией:

mysqldump -u user -h localhost --no-data -p database > database.sql
onteria_
источник
4
Я удивлен, что это не принятый ответ, несмотря на то, что он был опубликован на десять секунд раньше и является более полным, если не идентичным принятому ответу.
user5532169
1
@ zypA13510, очевидно, десять секунд могут быть разницей в 749 голосов.
Emallove
17

Вы также можете извлечь отдельную таблицу с --no-dataопцией

mysqldump -u user -h localhost --no-data -p database tablename > table.sql
PodTech.io
источник
6

Вы можете использовать опцию -d с командой mysqldump

mysqldump -u root -p -d databasename > database.sql
Рахул Чипад
источник
6

Сброс без использования вывода.

mysqldump --no-data <database name> --result-file=schema.sql
Андерс Б
источник
4

Остерегайтесь, хотя эта опция --no-data не будет включать определение представления. Так что, если у вас был вид, подобный следующему, создайте представление v1, выберите a. idAS id, a. created_dateAS created_date от t1; с опцией --no-data определение представления будет изменено на следующее представление создания v1 выберите 1 AS id, 1 AScreated_date

Мамта Сатур
источник
2

В случае, если вы используете IntelliJ, вы можете включить представление базы данных (Вид -> Окно инструментов -> База данных)

В этом представлении подключитесь к вашей базе данных. Затем вы можете щелкнуть правой кнопкой мыши базу данных и выбрать «Копировать DDL». Другие IDE могут предлагать аналогичную функцию.

IntelliJ DDL

Ant1Zykl0n
источник
2
Я дал ему попробовать, он не содержит никаких триггеров (и бог знает, что еще нет)
phil294
2

Если вы хотите вывести все таблицы из всех баз данных без данных (только базы данных и структуры таблиц), вы можете использовать:

mysqldump -P port -h hostname_or_ip -u username -p --no-data --all-databases > db_backup.sql

Это создаст файл .sql, который вы можете загрузить на сервер MySQL для создания новой базы данных. Вариантов использования для этого не так много в производственной среде, но я делаю это еженедельно для сброса серверов, которые связаны с демонстрационными веб-сайтами, поэтому, что бы ни делали пользователи в течение недели, в воскресные ночи все возвращается к «новому»: )

Хавьер Ларроулет
источник
1

Чтобы получить сценарий создания отдельной таблицы:
- выберите всю таблицу (с помощью клавиши Shift)
- просто щелкните правой кнопкой мыши имя таблицы и выберите «Копировать в буфер обмена»> «Создать оператор».

ММАС
источник
0

shell> mysqldump --no-data --routines --events test> dump-defs.sql

user13012757
источник
1
Добро пожаловать в StackOverflow. Вы могли бы сделать отличный ответ из этого, если вы дадите немного больше информации и ограничений.
января
0

Добавьте параметры --routines и --events, чтобы также включить хранимые процедуры и определения событий

mysqldump -u <user> -p --no-data --routines --events test > dump-defs.sql
Ранга
источник
-1

Вы можете взять, используя следующий метод

mysqldump -d <database name> > <filename.sql> // -d : without data

Надеюсь, это поможет вам

Феникс
источник
6
Этот ответ не добавляет ничего, что другой ответ еще не сказал.
Даниил