Merge "tests related to API block action and its gettoken"
[lhc/web/wiklou.git] / includes / installer / PostgresUpdater.php
index 6b3cb51..f5f8c41 100644 (file)
@@ -68,6 +68,7 @@ class PostgresUpdater extends DatabaseUpdater {
                        array( 'addTable', 'module_deps',       'patch-module_deps.sql' ),
                        array( 'addTable', 'uploadstash',       'patch-uploadstash.sql' ),
                        array( 'addTable', 'user_former_groups','patch-user_former_groups.sql' ),
+                       array( 'addTable', 'config',            'patch-config.sql' ),
 
                        # Needed before new field
                        array( 'convertArchive2' ),
@@ -169,6 +170,7 @@ class PostgresUpdater extends DatabaseUpdater {
                        array( 'changeField', 'revision',      'rev_minor_edit',  'smallint', 'rev_minor_edit::smallint DEFAULT 0' ),
                        array( 'changeField', 'templatelinks', 'tl_namespace',    'smallint', 'tl_namespace::smallint' ),
                        array( 'changeField', 'user_newtalk',  'user_ip',         'text',     'host(user_ip)' ),
+                       array( 'changeField', 'uploadstash',   'us_image_bits',   'smallint', '' ),
 
                        # null changes
                        array( 'changeNullableField', 'oldimage', 'oi_bits',       'NULL' ),
@@ -514,9 +516,15 @@ END;
                }
                $this->output( "Altering column '$table.$field' to be DEFERRABLE INITIALLY DEFERRED\n" );
                $conname = $fi->conname();
-               $command = "ALTER TABLE $table DROP CONSTRAINT $conname";
-               $this->db->query( $command );
-               $command = "ALTER TABLE $table ADD CONSTRAINT $conname FOREIGN KEY ($field) REFERENCES $clause DEFERRABLE INITIALLY DEFERRED";
+               if ( $fi->conname() ) {
+                       $conclause = "CONSTRAINT \"$conname\"";
+                       $command = "ALTER TABLE $table DROP CONSTRAINT $conname";
+                       $this->db->query( $command );
+               } else {
+                       $this->output( "Column '$table.$field' does not have a foreign key constraint, will be added\n" );
+                       $conclause = "";
+               }
+               $command = "ALTER TABLE $table ADD $conclause FOREIGN KEY ($field) REFERENCES $clause DEFERRABLE INITIALLY DEFERRED";
                $this->db->query( $command );
        }