代码之家  ›  专栏  ›  技术社区  ›  Saif Bechan

从测试数据库更新生产数据库的脚本

  •  0
  • Saif Bechan  · 技术社区  · 16 年前

    在我的本地计算机上,我有一个运行XAMPP的测试环境。我正在开发一个PHP/MySQL应用程序。

    现在我经常修改本地网站,但是当我想上传的时候,我要做很多工作。这就是我现在做的。

    我通过phpMyAdmin导出本地数据库
    我清除我的远程数据库 我导入导出的数据库。

    我无法远程访问生产数据库
    当我对本地数据库进行更改时,网站被关闭,因此更改完成后只是一个镜像

    2 回复  |  直到 16 年前
        1
  •  1
  •   Gordon Haim Evgi    16 年前

    你可以用 Phing's DBDeploy Task 管理数据库迁移。这样做的好处是,对数据库所做的任何更改都将成为版本控制系统不可或缺的一部分。

    其他选择是罗伯·艾伦的 Akrabat_Schema_Manager 我认为教条也有。

        2
  •  0
  •   Piper Merriam    16 年前

    #!/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命令的副本。

    推荐文章