3 # live fast! die young!
7 # move_status_network.sh nickname newserver
12 source /etc/statusnet/setup.cfg
14 function set_maintenance_mode()
18 php $PHPBASE/scripts/settag.php $nickname maintenancemode;
21 function get_current_db_info()
25 #FIXME I couldn't make this work better
27 export dbhost=`mysql -NB -h $SITEDBHOSTNAME -u $ADMIN --password=$ADMINPASS -e "SELECT dbhost FROM status_network WHERE nickname = '$nickname'" $SITEDB`
28 export dbuser=`mysql -NB -h $SITEDBHOSTNAME -u $ADMIN --password=$ADMINPASS -e "SELECT dbuser FROM status_network WHERE nickname = '$nickname'" $SITEDB`
29 export dbpass=`mysql -NB -h $SITEDBHOSTNAME -u $ADMIN --password=$ADMINPASS -e "SELECT dbpass FROM status_network WHERE nickname = '$nickname'" $SITEDB`
30 export dbname=`mysql -NB -h $SITEDBHOSTNAME -u $ADMIN --password=$ADMINPASS -e "SELECT dbname FROM status_network WHERE nickname = '$nickname'" $SITEDB`
33 function create_empty_db()
40 mysqladmin -h $newdbhost -u $ADMIN --password=$ADMINPASS create $dbname;
42 mysql -h $newdbhost -u $ADMIN --password=$ADMINPASS -e "GRANT ALL ON $dbname.* TO '$dbuser'@'localhost' IDENTIFIED BY '$dbpass';" $dbname;
43 mysql -h $newdbhost -u $ADMIN --password=$ADMINPASS -e "GRANT ALL ON $dbname.* TO '$dbuser'@'%' IDENTIFIED BY '$dbpass';" $dbname;
46 function transfer_data()
53 local dumpfile=`mktemp`;
55 mysqldump -h $dbhost -u $ADMIN --password=$ADMINPASS $dbname > $dumpfile;
56 mysql -h $newdbhost -u $ADMIN --password=$ADMINPASS $dbname < $dumpfile;
60 function update_routing_table()
65 mysql -h $SITEDBHOSTNAME -u $ADMIN --password=$ADMINPASS -e "UPDATE status_network set dbhost = '$newdbhost' where nickname = '$nickname'" $SITEDB
72 php $PHPBASE/scripts/flushsite.php -s$nickname.$WILDCARD
75 function unset_maintenance_mode()
79 php $PHPBASE/scripts/settag.php -d $nickname maintenancemode;
82 echo -n Setting maintenance mode on $nickname...
83 set_maintenance_mode $nickname
85 echo -n Getting current database info...
86 get_current_db_info $nickname
88 echo -n Creating empty $dbname database on server $newdbhost...
89 create_empty_db $newdbhost $dbuser $dbpass $dbname
91 echo -n Copying $dbname database from $dbhost to $newdbhost...
92 transfer_data $dbhost $newdbhost $dbuser $dbpass $dbname
94 echo -n Updating the routing table for $nickname to use $dbname on $newdbhost...
95 update_routing_table $nickname $newdbhost
97 echo -n Flushing $nickname site from cache...
100 echo -n Turning off maintenance mode on $nickname...
101 unset_maintenance_mode $nickname