[Mapbender_dev] [Mapbender] #819: WMC Update to 2.7

Mapbender mapbender_dev at lists.osgeo.org
Thu Apr 28 07:01:22 EDT 2011


#819: WMC Update to 2.7
--------------------------+-------------------------------------------------
 Reporter:  marc          |       Owner:  dev          
     Type:  defect        |      Status:  new          
 Priority:  major         |   Milestone:  2.7.2 release
Component:  installation  |     Version:  2.7.1        
 Keywords:                |  
--------------------------+-------------------------------------------------
 The Update Script to 2.7 threw some error when wmc entries already
 existing in table mb_user_wmc.[[BR]]
 Therefor some new WMC Tables will not be created.[[BR]]

 Here's an abstract of my error.log [[BR]]
 {{{
 psql:pgsql/UTF-8/update/update_2.6.2_to_2.7rc1_pgsql_UTF-8.sql:605: ERROR:
 ERROR:  column "wmc_serial_id" contains null values
 psql:pgsql/UTF-8/update/update_2.6.2_to_2.7rc1_pgsql_UTF-8.sql:618: ERROR:
 column "wmc_serial_id" contains null values
 psql:pgsql/UTF-8/update/update_2.6.2_to_2.7rc1_pgsql_UTF-8.sql:626: ERROR:
 relation "wmc_keyword" does not exist
 psql:pgsql/UTF-8/update/update_2.6.2_to_2.7rc1_pgsql_UTF-8.sql:2385:
 ERROR:  there is no unique constraint matching given keys for referenced
 table "mb_user_wmc"
 psql:pgsql/UTF-8/update/update_2.6.2_to_2.7rc1_pgsql_UTF-8.sql:2403:
 ERROR:  there is no unique constraint matching given keys for referenced
 table "mb_user_wmc"
 psql:pgsql/UTF-8/update/update_2.6.2_to_2.7rc1_pgsql_UTF-8.sql:2418:
 ERROR:  there is no unique constraint matching given keys for referenced
 table "mb_user_wmc"
 psql:pgsql/UTF-8/update/update_2.6.2_to_2.7rc1_pgsql_UTF-8.sql:2431:
 ERROR:  there is no unique constraint matching given keys for referenced
 table "mb_user_wmc"
 }}}
 the first error is thrown because the new constraint cannot be set.

 {{{
 (This is Code of update_2.6.2_to_2.7rc1_pgsql_UTF-8.sql  from line 615.)


 --adopt mb_user_wmc to store a serial column too!
 ALTER TABLE mb_user_wmc DROP CONSTRAINT pk_user_wmc;
 ALTER TABLE mb_user_wmc DROP CONSTRAINT mb_user_wmc_pkey; --for older
 implementations
 --DROP SEQUENCE mb_user_wmc_wmc_serial_id_seq cascade;
 CREATE SEQUENCE mb_user_wmc_wmc_serial_id_seq;
 ALTER  TABLE mb_user_wmc ADD COLUMN wmc_serial_id INTEGER;
 ALTER TABLE mb_user_wmc ADD COLUMN wmc_timestamp_create INTEGER;
 ALTER  TABLE mb_user_wmc ALTER COLUMN wmc_serial_id SET DEFAULT
 nextval('mb_user_wmc_wmc_serial_id_seq');
 --UPDATE mb_user_wmc SET wmc_serial_id =
 NEXTVAL('mb_user_wmc_wmc_serial_id_seq'); TODO: this is only for older
 installations - if a serial column exists before, the serial ids will be
 updated - that is not what we want cause this are the references!

 -- Constraint: pk_user_wmc

 ALTER TABLE mb_user_wmc
   ADD CONSTRAINT pk_user_wmc PRIMARY KEY(wmc_serial_id);
 }}}

 the other errors occurs because following new tables reference's to it.


 {{{
 CREATE TABLE wmc_keyword (
         fkey_keyword_id INTEGER REFERENCES keyword(keyword_id) ON DELETE
 CASCADE ON UPDATE CASCADE,
         fkey_wmc_serial_id INTEGER REFERENCES mb_user_wmc(wmc_serial_id)
 ON DELETE CASCADE ON UPDATE CASCADE
 );

 ALTER TABLE ONLY wmc_keyword
      ADD CONSTRAINT pk_wmc_keyword PRIMARY KEY (fkey_wmc_serial_id,
 fkey_keyword_id);

 --adopt relation for old implementations:
 --create a new one and drop the old!

 --new categories for publishing -> custom , inspire ?
 -- Table: wmc_custom_category
 CREATE TABLE wmc_md_topic_category
 (
   fkey_wmc_serial_id integer NOT NULL,
   fkey_md_topic_category_id integer NOT NULL,
   CONSTRAINT wmc_topic_category_fkey_wmc_serial_id_fkey FOREIGN KEY
 (fkey_wmc_serial_id)
       REFERENCES mb_user_wmc (wmc_serial_id) MATCH SIMPLE
       ON UPDATE CASCADE ON DELETE CASCADE,
   CONSTRAINT wmc_topic_category_fkey_md_topic_category_id_fkey FOREIGN KEY
 (fkey_md_topic_category_id)
       REFERENCES md_topic_category (md_topic_category_id) MATCH SIMPLE
       ON UPDATE CASCADE ON DELETE CASCADE
 );


 --new categories for publishing -> custom , inspire ?
 -- Table: wmc_custom_category
 CREATE TABLE wmc_custom_category
 (
   fkey_wmc_serial_id integer NOT NULL,
   fkey_custom_category_id integer NOT NULL,
   CONSTRAINT wmc_custom_category_fkey_wmc_serial_id_fkey FOREIGN KEY
 (fkey_wmc_serial_id)
       REFERENCES mb_user_wmc (wmc_serial_id) MATCH SIMPLE
       ON UPDATE CASCADE ON DELETE CASCADE,
   CONSTRAINT wmc_custom_category_fkey_custom_category_id_fkey FOREIGN KEY
 (fkey_custom_category_id)
       REFERENCES custom_category (custom_category_id) MATCH SIMPLE
       ON UPDATE CASCADE ON DELETE CASCADE
 );

 -- Table: wmc_inspire_category
 CREATE TABLE wmc_inspire_category
 (
   fkey_wmc_serial_id integer NOT NULL,
   fkey_inspire_category_id integer NOT NULL,
   CONSTRAINT wmc_inspire_category_fkey_wmc_serial_id_fkey FOREIGN KEY
 (fkey_wmc_serial_id)
       REFERENCES mb_user_wmc (wmc_serial_id) MATCH SIMPLE
       ON UPDATE CASCADE ON DELETE CASCADE,
   CONSTRAINT wmc_inspire_category_fkey_inspire_category_id_fkey FOREIGN
 KEY (fkey_inspire_category_id)
       REFERENCES inspire_category (inspire_category_id) MATCH SIMPLE
       ON UPDATE CASCADE ON DELETE CASCADE
 );

 }}}

-- 
Ticket URL: <http://trac.osgeo.org/mapbender/ticket/819>
Mapbender <http://www.mapbender.org/>
Mapbender


More information about the Mapbender_dev mailing list