在我的本地计算机上,我有一个运行XAMPP的测试环境。我正在开发PHP / MySQL应用程序。
现在我经常对本地网站进行更改,但是当我想上传时,我必须做很多工作。这就是我现在所做的。
我通过phpMyAdmin导出我的本地数据库 我清除我的远程数据库 我导入导出的数据库。
有时候DB有点大,所以需要花费很多时间。是否有我可以使用的脚本加快了这个过程。
我无法远程访问生产数据库
当我对本地数据库进行更改时,网站已关闭,因此完成后它只是一面镜像
答案 0 :(得分:1)
您可以使用Phing's DBDeploy Task来管理数据库迁移。这样做的好处是,对数据库的任何更改都将成为版本控制系统不可或缺的一部分。
这是一篇描述如何操作的文章:
替代品是Rob Allen的Akrabat_Schema_Manager,我认为Doctrine也有。{/ p>
答案 1 :(得分:0)
这是我使用的备份和迁移脚本
#!/bin/bash
email="email@addresswherebackupissent"
dbhost="dbhost"
testdbname="testdbname"
productiondbname="productiondbname"
dbuser="dbuser"
dbpass="userpass"
mkdir -p ~/archives
cd ~/archives
suffix=$(date +%y%m%d)
echo "SQL Backup of \"$dbname\" attached" >> tmp.txt
mysqldump --opt -u $dbuser -p$dbpass -h $dbhost $testdbname > SQL_"$testdbname"_$suffix.sql
mysql -u $dbuser -p$dbpass -h $dbhost $productiondbname < ../backup/drop/drop.sql
mysql -u $dbuser -p$dbpass -h $dbhost $productiondbname < SQL_"$testdbname"_$suffix.sql
tar zcf SQL_Backup_"$testdbname"_$suffix.tar.gz *.sql
mutt -s "SQL Backup of \"$testdbname\"" -a SQL_Backup_"$testdbname"_$suffix.tar.gz $email < tmp.txt
rm -rf {*.sql,tmp.txt}
此脚本可以从shell执行,并将备份您的数据库并通过电子邮件发送给您,然后。文件drop.sql是phpmyadmin用于清除生产站点数据库的drop命令的副本。