我有网络应用程序,它完全适用于生产服务器。但是这个应用程序每天都在进行,我经常需要邀请开发人员和自由职业者进行升级。因此,每次我找到某人,我都必须发送我的应用程序的开发版本和生产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表。 因此,我想制作脚本,转储整个生产数据库,删除一些重要的和保密的表,如用户,订单,付款等。在此脚本将虚拟数据放入这些表之后,例如我之前键入的用户数据。
答案 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语句)
找到您要共享的表格列表。
编写一个shell脚本来登录mysql并逐个获取每个表的DDL。
DESC TABLE_NAME_1;
DESC TABLE_NAME_2;
将输出重定向到文件。
分享此文件。