Main image
17th January
2010
written by Tom Evans

This script will pull the latest SVN for FluxBB 1.4.  This script assumes you are running an update from an existing version of fluxbb or punbb.  If you are not, you will need to comment out the line that deletes install.php.

In addition, this also sets all styles back to Oxygen since the new version may not have the styles some users may be using.  Grabs avatars from existing install so they will be visible for test install.  At the end of the script is code to add a redirect to your .htaccess.  This only needs to be added once.  After the first time, you can comment it out.

Run this as a cron job at a schedule you like, and you will have the latest SVN with the latest DB from your live site.

#!/bin/sh
 
# Script created 2008-03-27 by Tommy Evans (hostbunch.com) to dump a production database into a test database
# and grab the latest SVN for project
# Update 2010-01-17 by Tommy Evans - Added variables and path to fluxbb 1.4
 
#############################################
###### Configure the below variables ########
#############################################
# The domain in which to copy files from.
SRCDOMAIN="domain.com"
 
# The domain in which to copy files to.
DESTDOMAIN="fluxbb14.domain.com"
 
#SVN Path
SVN="http://fluxbb.org/svn/fluxbb/trunk/"
 
#The source SQL database
SRCSQL="srcsql.domain.com"
SRCUSER="srcuser"
SRCPSSWD="srcpassword"
SRCDB="punbb"
 
#The destination SQL database
DESTSQL="testdb.domain.com"
DESTUSER="destuser"
DESTPSSWD="despassword"
DESTDB="fluxbb14"
 
STYLE="Oxygen"
## Modify the below for any custom SQL you wish to add. It will go at the bottom of this script
CUSTOMSQL1="UPDATE config SET conf_value = '${STYLE}' WHERE CONVERT(conf_name USING utf8) = 'o_default_style';"
CUSTOMSQL2="UPDATE users set style = '${STYLE}' where CONVERT(style USING utf8) != '${STYLE}';"
CUSTOMSQL3="UPDATE config SET conf_value = 'http://${DESTDOMAIN}/upload' WHERE CONVERT(conf_name USING utf8) = 'o_base_url_alt';"
CUSTOMSQL4="UPDATE config SET conf_value = 'http://${DESTDOMAIN}/upload' WHERE CONVERT(conf_name USING utf8) = 'o_base_url';"
CUSTOMSQL5="TRUNCATE search_cache;"
CUSTOMSQL6="TRUNCATE search_matches;"
CUSTOMSQL7="TRUNCATE search_words;"
#############################################
###### End of configured variables   ########
#############################################
 
echo "Clear old cache direcory"
rm -f ${HOME}/${DESTDOMAIN}/upload/cache/
 
echo "Get the latest SVN from ${SVN}"
cd ${HOME}/${DESTDOMAIN}
svn up ${SVN} ${HOME}/${DESTDOMAIN}
 
echo "Remove install.php assumes you want to run db_update.php"
echo "If that is not the case, comment this line out"
rm -f ${HOME}/${DESTDOMAIN}/upload/install.php
 
# Abort on any errors
set -e
 
cd ${HOME}
 
echo "clean up ${SRCDB} before the dump"
mysqlcheck --auto-repair -r -s -u${SRCUSER} -p${SRCPSSWD} -h ${SRCSQL} -B ${SRCDB}
 
echo "dump ${SRCDB} to ${DESTDB}"
mysqldump -u${SRCUSER} -p${SRCPSSWD} -h ${SRCSQL} --opt -f -n ${SRCDB} | mysql -u${DESTUSER} -p${DESTPSSWD} -h ${DESTSQL} -D ${DESTDB}
 
echo "Update database custom SQL"
mysql -f -n -u${DESTUSER} -p${DESTPSSWD} -h ${DESTSQL} -D ${DESTDB} -e "${CUSTOMSQL1}${CUSTOMSQL2}${CUSTOMSQL3}${CUSTOMSQL4}${CUSTOMSQL5}${CUSTOMSQL6}${CUSTOMSQL7}"
 
echo "Get the avatars from ${SRCDOMAIN}"
cp -u ${HOME}/${SRCDOMAIN}/img/avatars/* ${HOME}/${DESTDOMAIN}/upload/img/avatars/
 
#move db_update.php and .htaccess
#cp -u ${HOME}/${DESTDOMAIN}/extras/db_update.php ${HOME}/${DESTDOMAIN}/upload/
#cp -u ${HOME}/${DESTDOMAIN}/upload/.htaccess.dist ${HOME}/${DESTDOMAIN}/upload/.htaccess
#cp -u ${HOME}/${DESTDOMAIN}/.htaccess ${HOME}/${DESTDOMAIN}/upload/.htaccess
 
#add redirect to upload folder
/usr/local/php5/bin/php -q << EOF
<?php
#file_put_contents("${HOME}/${DESTDOMAIN}/.htaccess", "\n\nRewriteEngine On\nRedirectMatch ^/\$  http://${DESTDOMAIN}/upload", FILE_APPEND);
?>
Tags: , , ,

Leave a Reply