如何将本地数据库更改迁移到测试服务器?

时间:2012-06-28 15:02:56

标签: php mysql

我FTP源代码文件,然后转储数据库(选择Drop表选项)并覆盖实时测试服务器数据库。但问题是我的"junk" testing datarequired default data一起。然后我必须手动删除不需要的行,以便我可以给客户端一个干净的状态。如果我通过一个删除现有表和数据的脚本并使用所需的默认数据创建新表,那将是理想的。

我的想法是 -

$table1 = "sql to create table1";
mysql_query($table1);
$table1_data = "sql to insert default data for table1"; 
mysql_query($table1_data);

以及20多个不同的表...

必须有更好的方法来处理这个问题。你会说什么?

**更新**

是否可以在一个变量中编写所有查询并运行它 - 例如

$sql =" 
   Drop If exists table1
   create table1 ....
   Insert Into table 1....
   Drop If exists table2
   create table 2
   Insert into table 2 
   .....
   .....
   .....
";
mysql_query($sql);
Is there a way to achieve something like above???

2 个答案:

答案 0 :(得分:0)

一些PHP框架允许您设置 fixtures ,用预定义的数据填充所需的表。如果您没有使用任何此类框架,我建议您仅创建测试所需的表的转储,而保留其他表。

如果您具有shell访问权限,则可以通过在数据库名称后面指定要导出的表来创建mysqldump的部分转储:

mysqldump --host=localhost --username=myuser --password databasename table1 table2 table3 >databasename.sql

答案 1 :(得分:0)

我无法从社区得到任何答案,所以我坚持自己的解决方案..

我创建了一系列查询 -

$queries[] = 'drop table';
$queries[] = 'create table';
$queries[] = 'Insert into table';

然后在for循环中运行每个。希望它可以帮助别人!