mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-23 05:50:55 +01:00
Remove the "search_documentfield" table
Summary: Ref T11741. See PHI1276. After the switch to "Ferret", this table has no remaining readers or writers. Test Plan: - Ran `bin/storage upgrade -f`, no warnings. - Grepped for class name, table name, `stemmedCorpus` column; got no relevant hits. - Did a fulltext search. Reviewers: amckinley Reviewed By: amckinley Subscribers: PHID-OPKG-gm6ozazyms6q6i22gyam Maniphest Tasks: T11741 Differential Revision: https://secure.phabricator.com/D20549
This commit is contained in:
parent
aacc62463d
commit
719dd6d3f4
4 changed files with 5 additions and 72 deletions
|
@ -1,34 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
// See T11741. Long ago, in T11922, we switched from "MyISAM FULLTEXT" to
|
||||||
|
// "InnoDB FULLTEXT". This migration prompted installs to rebuild the index.
|
||||||
|
|
||||||
$use_mysql = false;
|
// Later, in T12974, we switched from "InnoDB FULLTEXT" to "Ferret", mostly
|
||||||
|
// mooting this. The underlying tables and engines were later removed entirely.
|
||||||
$services = PhabricatorSearchService::getAllServices();
|
|
||||||
foreach ($services as $service) {
|
|
||||||
$engine = $service->getEngine();
|
|
||||||
if ($engine instanceof PhabricatorMySQLFulltextStorageEngine) {
|
|
||||||
$use_mysql = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($use_mysql) {
|
|
||||||
$field = new PhabricatorSearchDocumentField();
|
|
||||||
$conn = $field->establishConnection('r');
|
|
||||||
|
|
||||||
// We're only going to require this if the index isn't empty: if you're on a
|
|
||||||
// fresh install, you don't have to do anything.
|
|
||||||
$any_documents = queryfx_one(
|
|
||||||
$conn,
|
|
||||||
'SELECT * FROM %T LIMIT 1',
|
|
||||||
$field->getTableName());
|
|
||||||
|
|
||||||
if ($any_documents) {
|
|
||||||
try {
|
|
||||||
id(new PhabricatorConfigManualActivity())
|
|
||||||
->setActivityType(PhabricatorConfigManualActivity::TYPE_REINDEX)
|
|
||||||
->save();
|
|
||||||
} catch (AphrontDuplicateKeyQueryException $ex) {
|
|
||||||
// If we've already noted that this activity is required, just move on.
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
DROP TABLE IF EXISTS {$NAMESPACE}_search.search_documentfield;
|
|
@ -4530,7 +4530,6 @@ phutil_register_library_map(array(
|
||||||
'PhabricatorSearchDefaultController' => 'applications/search/controller/PhabricatorSearchDefaultController.php',
|
'PhabricatorSearchDefaultController' => 'applications/search/controller/PhabricatorSearchDefaultController.php',
|
||||||
'PhabricatorSearchDeleteController' => 'applications/search/controller/PhabricatorSearchDeleteController.php',
|
'PhabricatorSearchDeleteController' => 'applications/search/controller/PhabricatorSearchDeleteController.php',
|
||||||
'PhabricatorSearchDocument' => 'applications/search/storage/document/PhabricatorSearchDocument.php',
|
'PhabricatorSearchDocument' => 'applications/search/storage/document/PhabricatorSearchDocument.php',
|
||||||
'PhabricatorSearchDocumentField' => 'applications/search/storage/document/PhabricatorSearchDocumentField.php',
|
|
||||||
'PhabricatorSearchDocumentFieldType' => 'applications/search/constants/PhabricatorSearchDocumentFieldType.php',
|
'PhabricatorSearchDocumentFieldType' => 'applications/search/constants/PhabricatorSearchDocumentFieldType.php',
|
||||||
'PhabricatorSearchDocumentQuery' => 'applications/search/query/PhabricatorSearchDocumentQuery.php',
|
'PhabricatorSearchDocumentQuery' => 'applications/search/query/PhabricatorSearchDocumentQuery.php',
|
||||||
'PhabricatorSearchDocumentRelationship' => 'applications/search/storage/document/PhabricatorSearchDocumentRelationship.php',
|
'PhabricatorSearchDocumentRelationship' => 'applications/search/storage/document/PhabricatorSearchDocumentRelationship.php',
|
||||||
|
@ -10874,7 +10873,6 @@ phutil_register_library_map(array(
|
||||||
'PhabricatorSearchDefaultController' => 'PhabricatorSearchBaseController',
|
'PhabricatorSearchDefaultController' => 'PhabricatorSearchBaseController',
|
||||||
'PhabricatorSearchDeleteController' => 'PhabricatorSearchBaseController',
|
'PhabricatorSearchDeleteController' => 'PhabricatorSearchBaseController',
|
||||||
'PhabricatorSearchDocument' => 'PhabricatorSearchDAO',
|
'PhabricatorSearchDocument' => 'PhabricatorSearchDAO',
|
||||||
'PhabricatorSearchDocumentField' => 'PhabricatorSearchDAO',
|
|
||||||
'PhabricatorSearchDocumentFieldType' => 'Phobject',
|
'PhabricatorSearchDocumentFieldType' => 'Phobject',
|
||||||
'PhabricatorSearchDocumentQuery' => 'PhabricatorPolicyAwareQuery',
|
'PhabricatorSearchDocumentQuery' => 'PhabricatorPolicyAwareQuery',
|
||||||
'PhabricatorSearchDocumentRelationship' => 'PhabricatorSearchDAO',
|
'PhabricatorSearchDocumentRelationship' => 'PhabricatorSearchDAO',
|
||||||
|
|
|
@ -1,39 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
final class PhabricatorSearchDocumentField extends PhabricatorSearchDAO {
|
|
||||||
|
|
||||||
protected $phidType;
|
|
||||||
protected $field;
|
|
||||||
protected $auxPHID;
|
|
||||||
protected $corpus;
|
|
||||||
protected $stemmedCorpus;
|
|
||||||
|
|
||||||
protected function getConfiguration() {
|
|
||||||
return array(
|
|
||||||
self::CONFIG_TIMESTAMPS => false,
|
|
||||||
self::CONFIG_IDS => self::IDS_MANUAL,
|
|
||||||
self::CONFIG_COLUMN_SCHEMA => array(
|
|
||||||
'phidType' => 'text4',
|
|
||||||
'field' => 'text4',
|
|
||||||
'auxPHID' => 'phid?',
|
|
||||||
'corpus' => 'fulltext?',
|
|
||||||
'stemmedCorpus' => 'fulltext?',
|
|
||||||
),
|
|
||||||
self::CONFIG_KEY_SCHEMA => array(
|
|
||||||
'key_phid' => null,
|
|
||||||
'phid' => array(
|
|
||||||
'columns' => array('phid'),
|
|
||||||
),
|
|
||||||
'key_corpus' => array(
|
|
||||||
'columns' => array('corpus', 'stemmedCorpus'),
|
|
||||||
'type' => 'FULLTEXT',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
) + parent::getConfiguration();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getIDKey() {
|
|
||||||
return 'phid';
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in a new issue