【发布时间】:2010-04-28 10:45:02
【问题描述】:
我正在编写一个 PHP 脚本来从我的数据库生成 SQL 转储,以用于版本控制。它已经通过运行适当的SHOW CREATE .... 查询转储了数据结构。现在我想自己转储数据,但我不确定最好的方法。我的要求是:
- 我需要每行记录
- 行必须按主键排序
- 无论数据类型如何(整数、字符串、二进制数据...),SQL 都必须有效且准确
- 当数据没有改变时,转储应该是相同的
我可以检测并运行mysqldump 作为外部命令,但这增加了额外的系统要求,我需要解析输出以删除带有我不需要的转储信息(例如服务器版本或转储)的页眉和页脚日期)。我希望我的脚本尽可能简单,这样它就可以保存在一个独立的文件中。
我有什么选择?
【问题讨论】:
-
同时,我正在尝试 SHOW INDEX 和 mysql_real_escape_string()
-
mysqldump 并没有真正增加额外的系统要求,它随 mySQL 一起提供。
-
所以 mysqldump 添加 MySQL 作为系统要求。这里的大多数开发人员没有本地服务器:他们连接到 LAN 中的公共服务器。
-
如果 MySQL 在公共服务器上运行,并且您的脚本也在公共服务器上运行,我看不出有什么问题。
-
您确定使用自制转储对数据进行版本控制是个好主意吗?我喜欢版本化模式的想法,但是数据呢?