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

Php 如何将本地数据库更改迁移到测试服务器?,php,mysql,Php,Mysql,我FTP源代码文件,然后选择Drop table选项转储数据库并覆盖live testing server数据库。但问题是它需要我的垃圾测试数据和一些必需的默认数据。然后,我必须手动删除不需要的行,以便给客户端一个干净的状态。如果我通过一个脚本删除现有的表和数据,并使用所需的默认数据创建新表,这将是理想的 我的想法是—— $table1 = "sql to create table1"; mysql_query($table1); $table1_data = "sql to insert de

我FTP源代码文件,然后选择Drop table选项转储数据库并覆盖live testing server数据库。但问题是它需要我的垃圾测试数据和一些必需的默认数据。然后,我必须手动删除不需要的行,以便给客户端一个干净的状态。如果我通过一个脚本删除现有的表和数据,并使用所需的默认数据创建新表,这将是理想的

我的想法是——

$table1 = "sql to create table1";
mysql_query($table1);
$table1_data = "sql to insert default data for table1"; 
mysql_query($table1_data);
等20多个不同的表格

一定有更好的方法来处理这个问题。你会怎么说

**更新**

可以将所有查询写入一个变量并运行它- e、 g


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

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

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

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

我创建了一个查询数组-

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

然后在for循环中运行每一个。希望它能帮助别人

看看数据库迁移,它们是处理此问题的典型方法。如何区分默认值和垃圾邮件?可以在MySQL中为每个字段设置默认值。如果所需的默认数据是指行,那么为什么不导出该数据而不创建表并在需要时加载它?@khaled_webdev-例如表角色-默认角色管理员、经理、员工、来宾-当我在本地开发和测试时-我添加RoleTest1、Role2Smith,Role3Joe等-所以当我将其发送给客户机测试时,我只想显示前四个角色。这里还有一个系统角色Admin,它必须存在,以便客户端以Admin身份登录并测试站点。@Robert-我也这样做-但我要求的是一些表的多行数据-请参见上面的示例。我已经提到,我对数据库进行完整导出,并将其导入服务器,但我仍然必须删除不需要的数据手动,所以我正在寻找更好的方法。我曾经看过Symfony,您可以在其中创建.yml文件等,但由于我没有使用任何框架,所以我正在寻找纯php解决方案。谢谢
$queries[] = 'drop table';
$queries[] = 'create table';
$queries[] = 'Insert into table';