]> git.donarmstrong.com Git - roundcube.git/commitdiff
Upgrade for sqlite from 0.1-beta2.2
authorVincent Bernat <bernat@luffy.cx>
Tue, 22 May 2007 20:16:24 +0000 (20:16 +0000)
committerJérémy Bobbio <lunar@debian.org>
Sat, 18 Jun 2011 16:27:23 +0000 (18:27 +0200)
debian/postinst

index b7996ffe1a728d09e08f6e806649b7b718b7ddb3..3b09dcc46e68a99a2413317fc86e2d2abe35cc7b 100644 (file)
@@ -20,6 +20,56 @@ dbc_go roundcube $@
 case "$1" in
     configure)
 
+       # From 0.1-beta2.2 to 0.1-rc1, a column was added to table
+       # `identities'. For MySQL and PostgreSQL, this is handled by
+       # dbconfig-common but for sqlite, there is no way to add a
+       # column to a table. Therefore, we dump here the table and add
+       # the column.
+       case "$dbc_dbtype" in
+           sqlite)
+               db="${dbc_basepath}/${dbc_dbname}"
+               # OK, we need to check if the table contains html_signature
+               if ! sqlite "$db" '.schema identities' | grep -q html_signature; then
+                   # We need to add it
+                   echo -n "Need to upgrade 'identities' table in $db... "
+                   upgrade_tmp=$(mktemp -t roundcube.sqlite.XXXXXXXXXX)
+                   (
+                       cat <<EOF
+BEGIN TRANSACTION;
+DROP TABLE identities;
+CREATE TABLE identities (
+  identity_id integer NOT NULL PRIMARY KEY,
+  user_id integer NOT NULL default '0',
+  del tinyint NOT NULL default '0',
+  standard tinyint NOT NULL default '0',
+  name varchar(128) NOT NULL default '',
+  organization varchar(128) default '',
+  email varchar(128) NOT NULL default '',
+  "reply-to" varchar(128) NOT NULL default '',
+  bcc varchar(128) NOT NULL default '',
+  signature text NOT NULL default '',
+  html_signature tinyint NOT NULL default '0'
+);
+
+CREATE INDEX ix_identities_user_id ON identities(user_id);
+
+EOF
+                       # We dump and keep only inserts
+                       sqlite "$db" '.dump identities' | \
+                           awk '/^INSERT INTO/ {start = 1} {if (start == 1) print}' | \
+                           head -n -2 | \
+                           sed 's/^\(INSERT INTO identities \)/\1(identity_id, user_id, del, standard, name, organization, email, "reply-to", bcc, signature) /'
+                       echo 'COMMIT;' ) > $upgrade_tmp
+                   sqlite "$db" < $upgrade_tmp
+                   rm $upgrade_tmp
+                   echo "OK"
+               fi
+               ;;
+           *)
+               # Do nothing
+               ;;
+       esac
+
        CONFFILE=/etc/roundcube/main.inc.php
        touch $CONFFILE.ucftmp
        chmod 640 $CONFFILE.ucftmp