4 BASENAME=$(basename $COMMAND .sh)
7 . /etc/planetlab/plc_config
11 # return 0 (yes) or 1 (no) whether the database exists
12 function check_for_database () {
14 psql --user=$PLC_DB_USER --quiet -c "SELECT subversion from plc_db_version LIMIT 1" $dbname 2> /dev/null
18 # when 'service plc start' gets run, the planetlab5 DB gets created
19 # so this script will drop the planetlab5 DB and re-create it from scratch
20 # with the contents of the planetlab4 DB that is epxected to exist
26 # check that planetlab4 exists
27 if check_for_database planetlab4 ; then
28 echo OK : FOUND db planetlab4
30 echo ERROR : planetlab4 NOT FOUND - exiting
35 DUMP4=planetlab4-$(date +%Y-%m-%d-%H-%M)
36 pg_dump --user=$PLC_DB_USER planetlab4 > $DUMP4.sql
38 # check if planetlab5 exists
39 if check_for_database planetlab5 ; then
40 echo 'WARNING: found an existing DB named planetlab5'
44 bkname=$(printf planetlab5-%03d $i)
45 if check_for_database $bkname ; then
46 echo "$bkname already exists - skipping"
48 echo "Renaming planetab5 into $bkname"
49 psql --user=$PLC_DB_USER -c "ALTER DATABASE planetlab5 RENAME TO $bkname"
54 if check_for_database planetlab5 ; then
55 echo ERROR : FOUND planetlab5 - exiting
58 echo OK : db planetlab5 NOT FOUND
62 createdb --user=postgres --encoding=UNICODE --owner=$PLC_DB_USER planetlab5
64 psql --user=$PLC_DB_USER planetlab5 < $DUMP4.sql
66 # run coarse-grain script
67 migration_script | psql --user=$PLC_DB_USER planetlab5
72 function migration_script () {
74 sql_script=$DIRNAME/${BASENAME}.sql
75 if [ -f $sql_script ] ; then
78 echo Cannot locate ${BASENAME}.sql