制作MySQL数据库副本以进行开发

时间:2011-05-26 06:56:34

标签: php mysql

我有网络应用程序,它完全适用于生产服务器。但是这个应用程序每天都在进行,我经常需要邀请开发人员和自由职业者进行升级。因此,每次我找到某人,我都必须发送我的应用程序的开发版本和生产MySQL数据库的副本,我手动删除所有机密数据。

所以,问题是:是否可以制作自动制作这个数据库开发版本的脚本?

更新: 我会尝试绘制一些数据。例如,我有用户表:

User table:
name  | email         | role         | phone   |
-----------------------------------------------
user2 | mail@mail.com | guest        | 1234567 |
user2 | mail@mail.com | admin        | 1234567 |
user2 | mail@mail.com | manager      | 1234567 |
user2 | mail@mail.com | topmanager   | 1234567 |

但是,当然,这个表只有真实的用户数据。等等一些simmilar表。 因此,我想制作脚本,转储整个生产数据库,删除一些重要的和保密的表,如用户,订单,付款等。在此脚本将虚拟数据放入这些表之后,例如我之前键入的用户数据。

3 个答案:

答案 0 :(得分:4)

您可以在命令行中使用mysql。

ssh -C user@newhost "mysql -uUSER -pPASS -e 'create database NEW_DB_NAME;'" 
&& mysqldump --force --log-error=mysql_error.log -uUSER -pPASS OLD_DB_NAME 
| ssh -C user@remotehost "mysql -uUSER -pPASS NEW_DB_NAME"

答案 1 :(得分:1)

你的意思是你想给他们一份数据库的副本,其中一些部分是匿名的吗?

为什么不写下这样的东西:

UPDATE `mytable` SET `foo` = `bar`

匿名那些列?您可以编写一个导出数据库的PHP脚本,然后将其执行到任何相关的表和列。

或者我是否误解了这个问题?

答案 2 :(得分:0)

如果只想共享表的DDL(CREATE TABLE语句)

  1. 找到您要共享的表格列表。

  2. 编写一个shell脚本来登录mysql并逐个获取每个表的DDL。

    DESC TABLE_NAME_1;

    DESC TABLE_NAME_2;

  3. 将输出重定向到文件。

  4. 分享此文件。