| | 107 | 10 => { |
| | 108 | schema_info => [ qq| |
| | 109 | CREATE TABLE schema_info ( |
| | 110 | version integer NOT NULL default 0 |
| | 111 | ); |
| | 112 | |, qq| |
| | 113 | INSERT INTO schema_info VALUES (10) |
| | 114 | | ], |
| | 115 | |
| | 116 | node => [ qq| |
| | 117 | CREATE TABLE node ( |
| | 118 | id integer NOT NULL PRIMARY KEY AUTOINCREMENT, |
| | 119 | name varchar(200) NOT NULL DEFAULT '', |
| | 120 | version integer NOT NULL default 0, |
| | 121 | text mediumtext NOT NULL default '', |
| | 122 | modified datetime default NULL, |
| | 123 | moderate boolean NOT NULL default '0', |
| | 124 | deleted boolean NOT NULL default '0' |
| | 125 | ) |
| | 126 | |, qq| |
| | 127 | CREATE UNIQUE INDEX node_name ON node (name) |
| | 128 | |, qq| |
| | 129 | CREATE INDEX node_deleted_index ON node (deleted) |
| | 130 | | ], |
| | 131 | content => [ qq| |
| | 132 | CREATE TABLE content ( |
| | 133 | node_id integer NOT NULL, |
| | 134 | version integer NOT NULL default 0, |
| | 135 | text mediumtext NOT NULL default '', |
| | 136 | modified datetime default NULL, |
| | 137 | comment mediumtext NOT NULL default '', |
| | 138 | moderated boolean NOT NULL default '1', |
| | 139 | deleted boolean NOT NULL default '0', |
| | 140 | verified datetime default NULL, |
| | 141 | PRIMARY KEY (node_id, version) |
| | 142 | ) |
| | 143 | |, qq| |
| | 144 | CREATE INDEX content_deleted_index ON content (deleted) |
| | 145 | | ], |
| | 146 | internal_links => [ qq| |
| | 147 | CREATE TABLE internal_links ( |
| | 148 | link_from varchar(200) NOT NULL default '', |
| | 149 | link_to varchar(200) NOT NULL default '', |
| | 150 | deleted boolean NOT NULL default '0', |
| | 151 | PRIMARY KEY (link_from, link_to) |
| | 152 | ) |
| | 153 | |, qq| |
| | 154 | CREATE INDEX internal_links_deleted_index ON internal_links (deleted) |
| | 155 | | ], |
| | 156 | metadata => [ qq| |
| | 157 | CREATE TABLE metadata ( |
| | 158 | node_id integer NOT NULL, |
| | 159 | version integer NOT NULL default 0, |
| | 160 | metadata_type varchar(200) NOT NULL DEFAULT '', |
| | 161 | metadata_value mediumtext NOT NULL DEFAULT '', |
| | 162 | deleted boolean NOT NULL DEFAULT '0' |
| | 163 | ) |
| | 164 | |, qq| |
| | 165 | CREATE INDEX metadata_deleted_index ON metadata (deleted) |
| | 166 | | ] |
| | 167 | }, |
| 171 | | # Grab current data |
| 172 | | print "Upgrading: $upgrade_schema\n"; |
| 173 | | @cur_data = eval("&Wiki::Toolkit::Setup::Database::fetch_upgrade_".$upgrade_schema."(\$dbh)"); |
| 174 | | |
| 175 | | # Drop the current tables |
| 176 | | cleardb($dbh); |
| 177 | | |
| 178 | | # Grab new list of tables |
| 179 | | %tables = fetch_tables_listing($dbh, $wanted_schema); |
| | 243 | if ($fetch_upgrades{$upgrade_schema}) { |
| | 244 | # Grab current data |
| | 245 | print "Upgrading: $upgrade_schema\n"; |
| | 246 | @cur_data = eval("&Wiki::Toolkit::Setup::Database::fetch_upgrade_".$upgrade_schema."(\$dbh)"); |
| | 247 | |
| | 248 | # Drop the current tables |
| | 249 | cleardb($dbh); |
| | 250 | |
| | 251 | # Grab new list of tables |
| | 252 | %tables = fetch_tables_listing($dbh, $wanted_schema); |
| | 253 | } |
| 196 | | Wiki::Toolkit::Setup::Database::bulk_data_insert($dbh,@cur_data); |
| | 270 | if ($fetch_upgrades{$upgrade_schema}) { |
| | 271 | Wiki::Toolkit::Setup::Database::bulk_data_insert($dbh,@cur_data); |
| | 272 | } else { |
| | 273 | print "Upgrading schema: $upgrade_schema\n"; |
| | 274 | my @updates = @{$upgrades{$upgrade_schema}}; |
| | 275 | foreach my $update (@updates) { |
| | 276 | if(ref($update) eq "CODE") { |
| | 277 | &$update($dbh); |
| | 278 | } elsif(ref($update) eq "ARRAY") { |
| | 279 | foreach my $nupdate (@$update) { |
| | 280 | $dbh->do($nupdate); |
| | 281 | } |
| | 282 | } else { |
| | 283 | $dbh->do($update); |
| | 284 | } |
| | 285 | } |
| | 286 | } |