Commit ffef34e766b922cf9341b81d64160423539fd123
1 parent
3a3121f3
KTS-2541
"indexes must be applied to searchable fields when recreating indexes" Updated. Committed By: Conrad Vermeulen Reviewed By: Kevin Fourie git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@7447 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
1 changed file
with
22 additions
and
5 deletions
bin/recreateIndexes.php
| @@ -77,6 +77,7 @@ class IndexRecreator | @@ -77,6 +77,7 @@ class IndexRecreator | ||
| 77 | var $primary; | 77 | var $primary; |
| 78 | var $globalstart; | 78 | var $globalstart; |
| 79 | var $start; | 79 | var $start; |
| 80 | + var $tables; | ||
| 80 | 81 | ||
| 81 | function microtimeFloat() | 82 | function microtimeFloat() |
| 82 | { | 83 | { |
| @@ -257,7 +258,11 @@ class IndexRecreator | @@ -257,7 +258,11 @@ class IndexRecreator | ||
| 257 | $this->addForeignKey('metadata_lookup_tree','document_field_id', 'document_fields','id'); | 258 | $this->addForeignKey('metadata_lookup_tree','document_field_id', 'document_fields','id'); |
| 258 | // $this->addForeignKey('metadata_lookup_tree','metadata_lookup_tree_parent', '??','id'); | 259 | // $this->addForeignKey('metadata_lookup_tree','metadata_lookup_tree_parent', '??','id'); |
| 259 | 260 | ||
| 260 | - $this->addForeignKey('mime_types','mime_document_id','mime_documents','id'); | 261 | + $this->addForeignKey('mime_types','mime_document_id','mime_documents','id', 'set null', 'set null'); |
| 262 | + $this->addForeignKey('mime_types','extractor_id','mime_extractors','id', 'set null', 'set null'); | ||
| 263 | + | ||
| 264 | + $this->addForeignKey('mime_document_mapping','mime_type_id','mime_types','id'); | ||
| 265 | + $this->addForeignKey('mime_document_mapping','mime_document_id','mime_documents','id'); | ||
| 261 | 266 | ||
| 262 | $this->addForeignKey('news','image_mime_type_id','mime_types','id'); | 267 | $this->addForeignKey('news','image_mime_type_id','mime_types','id'); |
| 263 | 268 | ||
| @@ -398,6 +403,13 @@ class IndexRecreator | @@ -398,6 +403,13 @@ class IndexRecreator | ||
| 398 | //$this->addIndex('document_types_lookup','disabled'); ? used | 403 | //$this->addIndex('document_types_lookup','disabled'); ? used |
| 399 | 404 | ||
| 400 | $this->addIndex('documents','created'); | 405 | $this->addIndex('documents','created'); |
| 406 | + $this->addIndex('documents','modified'); | ||
| 407 | + $this->addIndex('documents','full_path','','(255)'); | ||
| 408 | + $this->addIndex('documents','immutable'); | ||
| 409 | + $this->addIndex('documents','checkedout'); | ||
| 410 | + | ||
| 411 | + $this->addIndex('document_content_version','filename','','(255)'); | ||
| 412 | + $this->addIndex('document_content_version','size'); | ||
| 401 | 413 | ||
| 402 | $this->addIndex('field_behaviour_options',array('behaviour_id','field_id')); | 414 | $this->addIndex('field_behaviour_options',array('behaviour_id','field_id')); |
| 403 | 415 | ||
| @@ -516,20 +528,22 @@ class IndexRecreator | @@ -516,20 +528,22 @@ class IndexRecreator | ||
| 516 | $this->_exec($sql); | 528 | $this->_exec($sql); |
| 517 | } | 529 | } |
| 518 | 530 | ||
| 519 | - function addIndex($table, $fields, $type='') | 531 | + function addIndex($table, $fields, $type='', $extra='') |
| 520 | { | 532 | { |
| 533 | + if (!in_array($table, $this->tables)) return; | ||
| 534 | + | ||
| 521 | if (!is_array($fields)) $fields = array($fields); | 535 | if (!is_array($fields)) $fields = array($fields); |
| 522 | $index = implode('_', $fields); | 536 | $index = implode('_', $fields); |
| 523 | //$index = str_replace('_id','',$index); | 537 | //$index = str_replace('_id','',$index); |
| 524 | $fields = implode(',',$fields); | 538 | $fields = implode(',',$fields); |
| 525 | - $sql = "alter table $table add $type index $index ($fields) "; | 539 | + $sql = "alter table $table add $type index $index ($fields$extra) "; |
| 526 | $this->_exec($sql); | 540 | $this->_exec($sql); |
| 527 | } | 541 | } |
| 528 | 542 | ||
| 529 | function addForeignKey($table, $field, $othertable, $otherfield, $ondelete='cascade', $onupdate='cascade') | 543 | function addForeignKey($table, $field, $othertable, $otherfield, $ondelete='cascade', $onupdate='cascade') |
| 530 | { | 544 | { |
| 531 | - if (!in_array($table, $this->tables)) continue; | ||
| 532 | - if (!in_array($othertable, $this->tables)) continue; | 545 | + if (!in_array($table, $this->tables)) return; |
| 546 | + if (!in_array($othertable, $this->tables)) return; | ||
| 533 | 547 | ||
| 534 | $sql = "alter table $table add foreign key ($field) references $othertable ($otherfield) "; | 548 | $sql = "alter table $table add foreign key ($field) references $othertable ($otherfield) "; |
| 535 | if ($ondelete != '') | 549 | if ($ondelete != '') |
| @@ -594,6 +608,8 @@ class IndexRecreator | @@ -594,6 +608,8 @@ class IndexRecreator | ||
| 594 | $this->addPrimaryKey('metadata_lookup','id'); | 608 | $this->addPrimaryKey('metadata_lookup','id'); |
| 595 | $this->addPrimaryKey('metadata_lookup_tree','id'); | 609 | $this->addPrimaryKey('metadata_lookup_tree','id'); |
| 596 | $this->addPrimaryKey('mime_documents','id'); | 610 | $this->addPrimaryKey('mime_documents','id'); |
| 611 | + $this->addPrimaryKey('mime_extractors','id'); | ||
| 612 | + $this->addPrimaryKey('mime_extractors',array('mime_type_id','mime_document_id')); | ||
| 597 | $this->addPrimaryKey('mime_types','id'); | 613 | $this->addPrimaryKey('mime_types','id'); |
| 598 | $this->addPrimaryKey('news','id'); | 614 | $this->addPrimaryKey('news','id'); |
| 599 | $this->addPrimaryKey('notifications','id'); | 615 | $this->addPrimaryKey('notifications','id'); |
| @@ -646,6 +662,7 @@ class IndexRecreator | @@ -646,6 +662,7 @@ class IndexRecreator | ||
| 646 | 662 | ||
| 647 | function addPrimaryKey($table, $primarykey) | 663 | function addPrimaryKey($table, $primarykey) |
| 648 | { | 664 | { |
| 665 | + if (!in_array($table, $this->tables)) return; | ||
| 649 | if (is_array($primarykey)) | 666 | if (is_array($primarykey)) |
| 650 | { | 667 | { |
| 651 | $primarykey = implode(',', $primarykey); | 668 | $primarykey = implode(',', $primarykey); |