root/trunk/midgard/tools/midrepository/dbinstall.in

Revision 7101, 4.9 kB (checked in by bergius, 5 years ago)

Initial commit of the MidRepository? workflow extension
Issue number:
Obtained from:
Submitted by:
Reviewed by:

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
Line 
1 #!/bin/sh
2
3 OCWD=`pwd`
4
5 if test "`perl -e 'print $>'`" != "0"; then
6   echo $0 must be run as root
7   exit 1
8 fi
9
10 echo Creating blobs...
11 if test "@INSTALL@" = "new"; then
12     for i in @BLOBROOT@/blobs_@STAGING_DB@ @BLOBROOT@/blobs_@LIVE_DB@ @BLOBROOT@/blobs_@CENTRALSTAGING_DB@ @BLOBROOT@/blobs_@CENTRALLIVE_DB@;
13       do mkdir -p $i;
14       if test -d $i ; then
15       cd $i
16       tar xfz "$OCWD/blobs.tar.gz"
17       chown -R @APACHE_USER@ *
18       chgrp -R @APACHE_GROUP@ *
19       chmod -R 2771 `find -type d`
20       chmod -R 0664 `find -type f`
21       cd $OCWD
22     fi;
23     done;
24 else 
25       if test -d @BLOBROOT@/blobs_@CONVERT_DB@ ; then
26        for i in @BLOBROOT@/blobs_@STAGING_DB@ @BLOBROOT@/blobs_@LIVE_DB@ @BLOBROOT@/blobs_@CENTRALSTAGING_DB@ @BLOBROOT@/blobs_@CENTRALLIVE_DB@;
27          do cp -a @BLOBROOT@/blobs_@CONVERT_DB@ $i;
28         chown -R @APACHE_USER@ $i;
29         chgrp -R @APACHE_GROUP@ $i;
30         done;
31       else
32        exit "Can't find blobs to convert at @BLOBROOT@/blobs_@CONVERT_DB@";
33       fi
34 fi
35
36
37 if test "@INSTALL@" = "new"; then
38   echo Creating Midgard database...
39   mysqladmin --user="@DB_ADMIN_USER@" --password="@DB_ADMIN_PASSWORD@" --host="@DB_HOST@" create @STAGING_DB@
40   mysql --user="@DB_ADMIN_USER@" --password="@DB_ADMIN_PASSWORD@" --host="@DB_HOST@" @STAGING_DB@ < midgarddb
41   echo Creating BLOBs...
42   tar xfz blobs.tar.gz -C @STAGING_BLOBDIR@
43   chown -R @APACHE_USER@.@APACHE_GROUP@ @STAGING_BLOBDIR@/*
44   chmod -R 2771 `find @STAGING_BLOBDIR@ -type d`
45   chmod -R 0664 `find @STAGING_BLOBDIR@ -type f`
46 else
47   mysqldump --user="@DB_ADMIN_USER@" --password="@DB_ADMIN_PASSWORD@" --host="@DB_HOST@" @CONVERT_DB@ > dbdump
48   mysqladmin --user="@DB_ADMIN_USER@" --password="@DB_ADMIN_PASSWORD@" --host="@DB_HOST@" create @STAGING_DB@
49   mysql @STAGING_DB@ < dbdump
50   if ! ./database-upgrade; then
51     echo
52     echo Database is not up to date, or database-upgrade did not run
53     echo correctly. Please run database-upgrade manually
54     exit
55   fi
56 fi
57
58 echo Updating MySQL database...
59 mysql --user="@DB_ADMIN_USER@" --password="@DB_ADMIN_PASSWORD@" --host="@DB_HOST@" mysql < mysql-user.sql >/dev/null 2>/dev/null
60 mysql --user="@DB_ADMIN_USER@" --password="@DB_ADMIN_PASSWORD@" --host="@DB_HOST@" mysql < mysql-db.sql >/dev/null 2>/dev/null
61
62
63 # create spool dirs
64 mkdir -p /var/spool/mgd
65 cd /var/spool/mgd
66 tar xfz "$OCWD/spooldirs.tar.gz"
67 chown -R @APACHE_USER@ *
68 chgrp -R @APACHE_GROUP@ *
69 chmod -R 2771 `find $i`;
70 cd $OCWD
71
72 # create cache dirs
73 for i in @STAGING_CACHEDIR@ @LIVE_CACHEDIR@ @CENTRALSTAGING_CACHEDIR@ @CENTRALLIVE_CACHEDIR@;
74 do mkdir -p $i;
75 chown @APACHE_USER@ $i;
76 chown @APACHE_GROUP@ $i;
77 chmod 2771 $i;
78 done;
79
80 # create scripts directory
81 mkdir -p @WORKFLOW@;
82 mkdir @WORKFLOW@/tmp
83 mkdir @WORKFLOW@/bin
84 mkdir @WORKFLOW@/lib
85 mkdir @WORKFLOW@/etc
86 mkdir @WORKFLOW@/cvs
87 mkdir @WORKFLOW@/cvsrepos
88 cp workflow.xml vcstaging.conf vclive.conf centralstaging.conf centrallive.conf @WORKFLOW@/etc
89 cp *.php @WORKFLOW@/lib
90 cp clients/* @WORKFLOW@/bin
91 # create repligard configuration
92 chown -R @APACHE_USER@ *;
93 chown -R @APACHE_GROUP@ *;
94 cd $OCWD;
95
96 # insert objects needed for vc + wf
97
98 repligard -a -c @WORKFLOW@/etc/vcstaging.conf -i support.xml
99
100 # clone db
101 echo Clone database...
102 mysqldump --user="@DB_ADMIN_USER@" --password="@DB_ADMIN_PASSWORD@" --host="@DB_HOST@" @STAGING_DB@ > dbdump
103 for i in @LIVE_DB@ @CENTRALSTAGING_DB@ @CENTRALLIVE_DB@;
104 do mysqladmin --user="@DB_ADMIN_USER@" --password="@DB_ADMIN_PASSWORD@" --host="@DB_HOST@" create $i
105 mysql --user="@DB_ADMIN_USER@" --password="@DB_ADMIN_PASSWORD@" --host="@DB_HOST@" $i < dbdump;
106 done
107
108 rm dbdump;
109
110 chown -R @APACHE_USER@ @WORKFLOW@;
111 chgrp -R @APACHE_GROUP@ @WORKFLOW@;
112
113 # create meta db & cvs
114 echo Create meta db and cvs...
115 if test "@INSTALL@" = "convert"; then
116   mysqladmin --user="@DB_ADMIN_USER@" --password="@DB_ADMIN_PASSWORD@" --host="@DB_HOST@" create @META_DB@
117   mysql --user="@DB_ADMIN_USER@" --password="@DB_ADMIN_PASSWORD@" --host="@DB_HOST@" @META_DB@ < global.sql
118   sed /midgard-data.conf/d < @SYSCONFDIR@/httpd.conf > httpd.conf
119   echo "Include $OCWD/midgard-workflow.conf" >> httpd.conf
120   apachectl stop
121   sleep 5
122   apachectl start
123   sleep 5
124   @WORKFLOW@/bin/call-migrate.php
125   apachectl stop
126 else
127   mysqladmin --user="@DB_ADMIN_USER@" --password="@DB_ADMIN_PASSWORD@" --host="@DB_HOST@" create @META_DB@
128   mysql --user="@DB_ADMIN_USER@" --password="@DB_ADMIN_PASSWORD@" --host="@DB_HOST@" @META_DB@ < metadb
129   cd @WORKFLOW@
130   tar xfz $OCWD/cvs.tar.gz
131   cd $OCWD
132 fi
133
134 chown -R @APACHE_USER@ @WORKFLOW@;
135 chgrp -R @APACHE_GROUP@ @WORKFLOW@;
136
137 if ! grep "bin/everymin.php" /etc/crontab &> /dev/null; then
138   echo "0-59 * * * * @APACHE_USER@ @WORKFLOW@/bin/everymin.php >> /tmp/everymin.log 2>&1" >> /etc/crontab
139   echo Notice: @WORKFLOW@/bin/everymin.php has been added to /etc/crontab. Please restart crond.
140 fi
141
142 echo "*** Install succeeded! ***"
143 echo Do the following to complete the installation:
144 echo - Add @WORKFLOW@ to the PHP config variable \"include_path\"
145 echo - Include / merge midgard-workflow.conf into your apache config and reload apache.
146
147
Note: See TracBrowser for help on using the browser.