Show
Ignore:
Timestamp:
05/26/08 19:44:26 (4 years ago)
Author:
dom
Message:

Move to new schema version 10, including some missing indexes
and support for deletion flags and verified flags. Note that
the code using these columns has not yet been written (closes #25, #34).

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • wiki-toolkit/trunk/lib/Wiki/Toolkit/Setup/Pg.pm

    r440 r441  
    88 
    99@ISA = qw( Wiki::Toolkit::Setup::Database ); 
    10 $VERSION = '0.09'; 
     10$VERSION = '0.10'; 
    1111 
    1212use DBI; 
     
    133133| ] 
    134134    }, 
     135    10 => { 
     136        schema_info => [ qq| 
     137CREATE TABLE schema_info ( 
     138  version   integer      NOT NULL default 0 
     139) 
     140|, qq| 
     141INSERT INTO schema_info VALUES (10) 
     142| ], 
     143 
     144        node => [ qq| 
     145CREATE SEQUENCE node_seq 
     146|, qq| 
     147CREATE TABLE node ( 
     148  id        integer      NOT NULL DEFAULT NEXTVAL('node_seq'), 
     149  name      varchar(200) NOT NULL DEFAULT '', 
     150  version   integer      NOT NULL default 0, 
     151  text      text         NOT NULL default '', 
     152  modified  timestamp without time zone    default NULL, 
     153  moderate  boolean      NOT NULL default '0', 
     154  deleted   boolean      NOT NULL default '0', 
     155  CONSTRAINT pk_id PRIMARY KEY (id) 
     156) 
     157|, qq| 
     158CREATE UNIQUE INDEX node_name ON node (name) 
     159|, qq| 
     160CREATE INDEX node_deleted_index ON node (deleted) 
     161| ], 
     162 
     163        content => [ qq| 
     164CREATE TABLE content ( 
     165  node_id   integer      NOT NULL, 
     166  version   integer      NOT NULL default 0, 
     167  text      text         NOT NULL default '', 
     168  modified  timestamp without time zone    default NULL, 
     169  comment   text         NOT NULL default '', 
     170  moderated boolean      NOT NULL default '1', 
     171  deleted   boolean      NOT NULL default '0', 
     172  verified  timestamp without time zone    default NULL, 
     173  CONSTRAINT pk_node_id PRIMARY KEY (node_id,version), 
     174  CONSTRAINT fk_node_id FOREIGN KEY (node_id) REFERENCES node (id) 
     175) 
     176|, qq| 
     177CREATE INDEX content_deleted_index ON content (deleted) 
     178| ], 
     179 
     180        internal_links => [ qq| 
     181CREATE TABLE internal_links ( 
     182  link_from varchar(200) NOT NULL default '', 
     183  link_to   varchar(200) NOT NULL default '' 
     184) 
     185|, qq| 
     186CREATE UNIQUE INDEX internal_links_pkey ON internal_links (link_from, link_to) 
     187| ], 
     188 
     189        metadata => [ qq| 
     190CREATE TABLE metadata ( 
     191  node_id        integer      NOT NULL, 
     192  version        integer      NOT NULL default 0, 
     193  metadata_type  varchar(200) NOT NULL DEFAULT '', 
     194  metadata_value text         NOT NULL DEFAULT '', 
     195  CONSTRAINT fk_node_id FOREIGN KEY (node_id) REFERENCES node (id) 
     196) 
     197|, qq| 
     198CREATE INDEX metadata_index ON metadata (node_id, version, metadata_type, metadata_value) 
     199| ] 
     200    }, 
    135201}; 
    136202 
     
    193259], 
    194260 
     261'9_to_10' => [ qq| 
     262ALTER TABLE node ADD COLUMN deleted boolean; 
     263UPDATE node SET deleted = '0'; 
     264ALTER TABLE node ALTER COLUMN deleted SET DEFAULT '0'; 
     265ALTER TABLE node ALTER COLUMN deleted SET NOT NULL; 
     266CREATE INDEX node_deleted_index ON node (deleted); 
     267|, qq| 
     268ALTER TABLE content ADD COLUMN deleted boolean; 
     269UPDATE content SET deleted = '0'; 
     270ALTER TABLE content ALTER COLUMN deleted SET DEFAULT '0'; 
     271ALTER TABLE content ALTER COLUMN deleted SET NOT NULL; 
     272CREATE INDEX content_deleted_index ON content (deleted); 
     273|, qq| 
     274ALTER TABLE internal_links ADD COLUMN deleted boolean; 
     275UPDATE internal_links SET deleted = '0'; 
     276ALTER TABLE internal_links ALTER COLUMN deleted SET DEFAULT '0'; 
     277ALTER TABLE internal_links ALTER COLUMN deleted SET NOT NULL; 
     278CREATE INDEX internal_links_deleted_index ON internal_links (deleted); 
     279|, qq| 
     280ALTER TABLE metadata ADD COLUMN deleted boolean; 
     281UPDATE metadata SET deleted = '0'; 
     282ALTER TABLE metadata ALTER COLUMN deleted SET DEFAULT '0'; 
     283ALTER TABLE metadata ALTER COLUMN deleted SET NOT NULL; 
     284CREATE INDEX metadata_deleted_index ON metadata (deleted); 
     285|, qq| 
     286ALTER TABLE content ADD COLUMN verified timestamp without time zone default NULL; 
     287|, qq| 
     288UPDATE schema_info SET version = 10; 
     289| 
     290], 
     291 
    195292); 
    196293 
    197 my @old_to_9 = ($upgrades{'old_to_8'},$upgrades{'8_to_9'}); 
    198 $upgrades{'old_to_9'} = \@old_to_9; 
     294my @old_to_10 = ($upgrades{'old_to_8'},$upgrades{'8_to_9'},$upgrades{'9_to_10'}); 
     295my @eight_to_10 = ($upgrades{'8_to_9'},$upgrades{'9_to_10'}); 
     296$upgrades{'old_to_10'} = \@old_to_10; 
     297$upgrades{'8_to_10'} = \@eight_to_10; 
    199298 
    200299=head1 NAME