mysql - 导出 mysql 模式(仅数据),除了一张表

标签 mysql database export

我有一个脚本来导出 MySQL 数据库的架构,我可以根据该架构生成迁移。对于这个过程,我只需要数据库模式,而不是数据本身。这是我目前使用的:

mysqldump -u root --p[pass] -h localhost mydb_prod --add-drop-table --no-data > mydb_prod-`date +"%Y-%m-%d-%H:%M:%S"`.sql

--no-data 选项可以解决问题。

但是,我的迁移历史记录也保存在数据库表中。这意味着我确实想要导出我的 migrations 表的数据。我知道 --ignore-table 选项可以显式忽略特定表,但是,这意味着我必须显式列出所有表,这可能会在将来导致问题,因为我们只每隔一段时间进行一次迁移。

除了一个(或多个)明确指定的表之外,是否有一种方法可以导出没有表数据的数据库架构?

最佳答案

我讨厌回答自己的问题,但我找到了一个解决方法,所以我不妨分享它。

我基本上首先导出没有数据的所有表的架构,然后只导出包含数据的单个迁移表,并将其附加到我的 .sql 输出文件中:

#/bin/bash

now=$(date +%Y-%m-%d-%H:%M:%S)
output_file="mydb_prod-$now.sql"

mysqldump -u root -p[pass] -h localhost mydb_prod --add-drop-table --no-data > "$output_file"
mysqldump -u root -p[pass] -h localhost mydb_prod migration_table --add-drop-table >> "$output_file"

这正是我所需要的,而无需手动显式指定每个表。

关于mysql - 导出 mysql 模式(仅数据),除了一张表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25955812/

相关文章:

sql - 如何检索 GROUP BY sql 语句中的特定列?

c# - 将数据集转换为整数

java - 如何在 Eclipse 中将带有图像库的 Java 项目导出为 jar 文件

java - 有没有什么简单的方法可以将用户输入导出到文本文件中?

php - 如何通过 Ajax 获取 php 返回值?

php - 如何在 LeftJoin querybuilder 中进行选择查询

java - 如何追踪不同版本文档中段落的增删改查?

php - 如何在我的网站上显示数据库信息?

c# - 是否有任何第三方库可以将 Postgresql 或 MySql 与 C# 一起使用,从而允许直接将对象转换为数据库?

import - 如何使用三个JS导出然后导入场景?