mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-23 14:00:56 +01:00
Generate expected schemata for Repository
Summary: Ref T1191. Add specs for repository tables. Test Plan: Saw ~300 fewer schema warnings. Reviewers: btrahan Reviewed By: btrahan Subscribers: epriestley Maniphest Tasks: T1191 Differential Revision: https://secure.phabricator.com/D10575
This commit is contained in:
parent
f74082aecd
commit
b149cb7e99
16 changed files with 401 additions and 0 deletions
|
@ -2143,6 +2143,7 @@ phutil_register_library_map(array(
|
||||||
'PhabricatorRepositoryRefCursorQuery' => 'applications/repository/query/PhabricatorRepositoryRefCursorQuery.php',
|
'PhabricatorRepositoryRefCursorQuery' => 'applications/repository/query/PhabricatorRepositoryRefCursorQuery.php',
|
||||||
'PhabricatorRepositoryRefEngine' => 'applications/repository/engine/PhabricatorRepositoryRefEngine.php',
|
'PhabricatorRepositoryRefEngine' => 'applications/repository/engine/PhabricatorRepositoryRefEngine.php',
|
||||||
'PhabricatorRepositoryRepositoryPHIDType' => 'applications/repository/phid/PhabricatorRepositoryRepositoryPHIDType.php',
|
'PhabricatorRepositoryRepositoryPHIDType' => 'applications/repository/phid/PhabricatorRepositoryRepositoryPHIDType.php',
|
||||||
|
'PhabricatorRepositorySchemaSpec' => 'applications/repository/storage/PhabricatorRepositorySchemaSpec.php',
|
||||||
'PhabricatorRepositorySearchEngine' => 'applications/repository/query/PhabricatorRepositorySearchEngine.php',
|
'PhabricatorRepositorySearchEngine' => 'applications/repository/query/PhabricatorRepositorySearchEngine.php',
|
||||||
'PhabricatorRepositoryStatusMessage' => 'applications/repository/storage/PhabricatorRepositoryStatusMessage.php',
|
'PhabricatorRepositoryStatusMessage' => 'applications/repository/storage/PhabricatorRepositoryStatusMessage.php',
|
||||||
'PhabricatorRepositorySvnCommitChangeParserWorker' => 'applications/repository/worker/commitchangeparser/PhabricatorRepositorySvnCommitChangeParserWorker.php',
|
'PhabricatorRepositorySvnCommitChangeParserWorker' => 'applications/repository/worker/commitchangeparser/PhabricatorRepositorySvnCommitChangeParserWorker.php',
|
||||||
|
@ -5139,6 +5140,7 @@ phutil_register_library_map(array(
|
||||||
'PhabricatorRepositoryRefCursorQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
'PhabricatorRepositoryRefCursorQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
||||||
'PhabricatorRepositoryRefEngine' => 'PhabricatorRepositoryEngine',
|
'PhabricatorRepositoryRefEngine' => 'PhabricatorRepositoryEngine',
|
||||||
'PhabricatorRepositoryRepositoryPHIDType' => 'PhabricatorPHIDType',
|
'PhabricatorRepositoryRepositoryPHIDType' => 'PhabricatorPHIDType',
|
||||||
|
'PhabricatorRepositorySchemaSpec' => 'PhabricatorConfigSchemaSpec',
|
||||||
'PhabricatorRepositorySearchEngine' => 'PhabricatorApplicationSearchEngine',
|
'PhabricatorRepositorySearchEngine' => 'PhabricatorApplicationSearchEngine',
|
||||||
'PhabricatorRepositoryStatusMessage' => 'PhabricatorRepositoryDAO',
|
'PhabricatorRepositoryStatusMessage' => 'PhabricatorRepositoryDAO',
|
||||||
'PhabricatorRepositorySvnCommitChangeParserWorker' => 'PhabricatorRepositoryCommitChangeParserWorker',
|
'PhabricatorRepositorySvnCommitChangeParserWorker' => 'PhabricatorRepositoryCommitChangeParserWorker',
|
||||||
|
|
|
@ -246,6 +246,11 @@ abstract class PhabricatorConfigSchemaSpec extends Phobject {
|
||||||
$charset = 'binary';
|
$charset = 'binary';
|
||||||
$collation = 'binary';
|
$collation = 'binary';
|
||||||
break;
|
break;
|
||||||
|
case 'bytes32':
|
||||||
|
$column_type = 'char(32)';
|
||||||
|
$charset = 'binary';
|
||||||
|
$collation = 'binary';
|
||||||
|
break;
|
||||||
case 'bytes12':
|
case 'bytes12':
|
||||||
$column_type = 'char(12)';
|
$column_type = 'char(12)';
|
||||||
$charset = 'binary';
|
$charset = 'binary';
|
||||||
|
@ -266,6 +271,11 @@ abstract class PhabricatorConfigSchemaSpec extends Phobject {
|
||||||
$charset = $this->getUTF8Charset();
|
$charset = $this->getUTF8Charset();
|
||||||
$collation = $this->getUTF8Collation();
|
$collation = $this->getUTF8Collation();
|
||||||
break;
|
break;
|
||||||
|
case 'text80':
|
||||||
|
$column_type = 'varchar(80)';
|
||||||
|
$charset = $this->getUTF8Charset();
|
||||||
|
$collation = $this->getUTF8Collation();
|
||||||
|
break;
|
||||||
case 'text64':
|
case 'text64':
|
||||||
$column_type = 'varchar(64)';
|
$column_type = 'varchar(64)';
|
||||||
$charset = $this->getUTF8Charset();
|
$charset = $this->getUTF8Charset();
|
||||||
|
|
|
@ -29,6 +29,7 @@ final class PhabricatorRepository extends PhabricatorRepositoryDAO
|
||||||
const TABLE_BADCOMMIT = 'repository_badcommit';
|
const TABLE_BADCOMMIT = 'repository_badcommit';
|
||||||
const TABLE_LINTMESSAGE = 'repository_lintmessage';
|
const TABLE_LINTMESSAGE = 'repository_lintmessage';
|
||||||
const TABLE_PARENTS = 'repository_parents';
|
const TABLE_PARENTS = 'repository_parents';
|
||||||
|
const TABLE_COVERAGE = 'repository_coverage';
|
||||||
|
|
||||||
const SERVE_OFF = 'off';
|
const SERVE_OFF = 'off';
|
||||||
const SERVE_READONLY = 'readonly';
|
const SERVE_READONLY = 'readonly';
|
||||||
|
@ -77,6 +78,31 @@ final class PhabricatorRepository extends PhabricatorRepositoryDAO
|
||||||
self::CONFIG_SERIALIZATION => array(
|
self::CONFIG_SERIALIZATION => array(
|
||||||
'details' => self::SERIALIZATION_JSON,
|
'details' => self::SERIALIZATION_JSON,
|
||||||
),
|
),
|
||||||
|
self::CONFIG_COLUMN_SCHEMA => array(
|
||||||
|
'name' => 'text255',
|
||||||
|
'callsign' => 'text32',
|
||||||
|
'versionControlSystem' => 'text32',
|
||||||
|
'uuid' => 'text64?',
|
||||||
|
'pushPolicy' => 'policy',
|
||||||
|
'credentialPHID' => 'phid?',
|
||||||
|
),
|
||||||
|
self::CONFIG_KEY_SCHEMA => array(
|
||||||
|
'key_phid' => null,
|
||||||
|
'phid' => array(
|
||||||
|
'columns' => array('phid'),
|
||||||
|
'unique' => true,
|
||||||
|
),
|
||||||
|
'callsign' => array(
|
||||||
|
'columns' => array('callsign'),
|
||||||
|
'unique' => true,
|
||||||
|
),
|
||||||
|
'key_name' => array(
|
||||||
|
'columns' => array('name'),
|
||||||
|
),
|
||||||
|
'key_vcs' => array(
|
||||||
|
'columns' => array('versionControlSystem'),
|
||||||
|
),
|
||||||
|
),
|
||||||
) + parent::getConfiguration();
|
) + parent::getConfiguration();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,21 @@ final class PhabricatorRepositoryArcanistProject
|
||||||
'symbolIndexLanguages' => self::SERIALIZATION_JSON,
|
'symbolIndexLanguages' => self::SERIALIZATION_JSON,
|
||||||
'symbolIndexProjects' => self::SERIALIZATION_JSON,
|
'symbolIndexProjects' => self::SERIALIZATION_JSON,
|
||||||
),
|
),
|
||||||
|
self::CONFIG_COLUMN_SCHEMA => array(
|
||||||
|
'name' => 'text255',
|
||||||
|
'repositoryID' => 'id?',
|
||||||
|
),
|
||||||
|
self::CONFIG_KEY_SCHEMA => array(
|
||||||
|
'key_phid' => null,
|
||||||
|
'phid' => array(
|
||||||
|
'columns' => array('phid'),
|
||||||
|
'unique' => true,
|
||||||
|
),
|
||||||
|
'name' => array(
|
||||||
|
'columns' => array('name'),
|
||||||
|
'unique' => true,
|
||||||
|
),
|
||||||
|
),
|
||||||
) + parent::getConfiguration();
|
) + parent::getConfiguration();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,17 @@ final class PhabricatorRepositoryAuditRequest
|
||||||
self::CONFIG_SERIALIZATION => array(
|
self::CONFIG_SERIALIZATION => array(
|
||||||
'auditReasons' => self::SERIALIZATION_JSON,
|
'auditReasons' => self::SERIALIZATION_JSON,
|
||||||
),
|
),
|
||||||
|
self::CONFIG_COLUMN_SCHEMA => array(
|
||||||
|
'auditStatus' => 'text64',
|
||||||
|
),
|
||||||
|
self::CONFIG_KEY_SCHEMA => array(
|
||||||
|
'commitPHID' => array(
|
||||||
|
'columns' => array('commitPHID'),
|
||||||
|
),
|
||||||
|
'auditorPHID' => array(
|
||||||
|
'columns' => array('auditorPHID', 'auditStatus'),
|
||||||
|
),
|
||||||
|
),
|
||||||
) + parent::getConfiguration();
|
) + parent::getConfiguration();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,21 @@ final class PhabricatorRepositoryBranch extends PhabricatorRepositoryDAO {
|
||||||
protected $name;
|
protected $name;
|
||||||
protected $lintCommit;
|
protected $lintCommit;
|
||||||
|
|
||||||
|
public function getConfiguration() {
|
||||||
|
return array(
|
||||||
|
self::CONFIG_COLUMN_SCHEMA => array(
|
||||||
|
'name' => 'text255',
|
||||||
|
'lintCommit' => 'text40?',
|
||||||
|
),
|
||||||
|
self::CONFIG_KEY_SCHEMA => array(
|
||||||
|
'repositoryID' => array(
|
||||||
|
'columns' => array('repositoryID', 'name'),
|
||||||
|
'unique' => true,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
) + parent::getConfiguration();
|
||||||
|
}
|
||||||
|
|
||||||
public static function loadBranch($repository_id, $branch_name) {
|
public static function loadBranch($repository_id, $branch_name) {
|
||||||
return id(new PhabricatorRepositoryBranch())->loadOneWhere(
|
return id(new PhabricatorRepositoryBranch())->loadOneWhere(
|
||||||
'repositoryID = %d AND name = %s',
|
'repositoryID = %d AND name = %s',
|
||||||
|
|
|
@ -66,6 +66,34 @@ final class PhabricatorRepositoryCommit
|
||||||
return array(
|
return array(
|
||||||
self::CONFIG_AUX_PHID => true,
|
self::CONFIG_AUX_PHID => true,
|
||||||
self::CONFIG_TIMESTAMPS => false,
|
self::CONFIG_TIMESTAMPS => false,
|
||||||
|
self::CONFIG_COLUMN_SCHEMA => array(
|
||||||
|
'commitIdentifier' => 'text40',
|
||||||
|
'mailKey' => 'bytes20',
|
||||||
|
'authorPHID' => 'phid?',
|
||||||
|
'auditStatus' => 'uint32',
|
||||||
|
'summary' => 'text80',
|
||||||
|
'importStatus' => 'uint32',
|
||||||
|
),
|
||||||
|
self::CONFIG_KEY_SCHEMA => array(
|
||||||
|
'key_phid' => null,
|
||||||
|
'phid' => array(
|
||||||
|
'columns' => array('phid'),
|
||||||
|
'unique' => true,
|
||||||
|
),
|
||||||
|
'repositoryID' => array(
|
||||||
|
'columns' => array('repositoryID', 'importStatus'),
|
||||||
|
),
|
||||||
|
'authorPHID' => array(
|
||||||
|
'columns' => array('authorPHID', 'auditStatus', 'epoch'),
|
||||||
|
),
|
||||||
|
'repositoryID_2' => array(
|
||||||
|
'columns' => array('repositoryID', 'epoch'),
|
||||||
|
),
|
||||||
|
'key_commit_identity' => array(
|
||||||
|
'columns' => array('commitIdentifier', 'repositoryID'),
|
||||||
|
'unique' => true,
|
||||||
|
),
|
||||||
|
),
|
||||||
) + parent::getConfiguration();
|
) + parent::getConfiguration();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,19 @@ final class PhabricatorRepositoryCommitData extends PhabricatorRepositoryDAO {
|
||||||
self::CONFIG_SERIALIZATION => array(
|
self::CONFIG_SERIALIZATION => array(
|
||||||
'commitDetails' => self::SERIALIZATION_JSON,
|
'commitDetails' => self::SERIALIZATION_JSON,
|
||||||
),
|
),
|
||||||
|
self::CONFIG_COLUMN_SCHEMA => array(
|
||||||
|
'authorName' => 'text255',
|
||||||
|
'commitMessage' => 'text',
|
||||||
|
),
|
||||||
|
self::CONFIG_KEY_SCHEMA => array(
|
||||||
|
'commitID' => array(
|
||||||
|
'columns' => array('commitID'),
|
||||||
|
'unique' => true,
|
||||||
|
),
|
||||||
|
'authorName' => array(
|
||||||
|
'columns' => array('authorName'),
|
||||||
|
),
|
||||||
|
),
|
||||||
) + parent::getConfiguration();
|
) + parent::getConfiguration();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,15 @@ final class PhabricatorRepositoryMirror extends PhabricatorRepositoryDAO
|
||||||
public function getConfiguration() {
|
public function getConfiguration() {
|
||||||
return array(
|
return array(
|
||||||
self::CONFIG_AUX_PHID => true,
|
self::CONFIG_AUX_PHID => true,
|
||||||
|
self::CONFIG_COLUMN_SCHEMA => array(
|
||||||
|
'remoteURI' => 'text255',
|
||||||
|
'credentialPHID' => 'phid?',
|
||||||
|
),
|
||||||
|
self::CONFIG_KEY_SCHEMA => array(
|
||||||
|
'key_repository' => array(
|
||||||
|
'columns' => array('repositoryPHID'),
|
||||||
|
),
|
||||||
|
),
|
||||||
) + parent::getConfiguration();
|
) + parent::getConfiguration();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,17 @@ final class PhabricatorRepositoryPushEvent
|
||||||
return array(
|
return array(
|
||||||
self::CONFIG_AUX_PHID => true,
|
self::CONFIG_AUX_PHID => true,
|
||||||
self::CONFIG_TIMESTAMPS => false,
|
self::CONFIG_TIMESTAMPS => false,
|
||||||
|
self::CONFIG_COLUMN_SCHEMA => array(
|
||||||
|
'remoteAddress' => 'uint32?',
|
||||||
|
'remoteProtocol' => 'text32?',
|
||||||
|
'rejectCode' => 'uint32',
|
||||||
|
'rejectDetails' => 'text64?',
|
||||||
|
),
|
||||||
|
self::CONFIG_KEY_SCHEMA => array(
|
||||||
|
'key_repository' => array(
|
||||||
|
'columns' => array('repositoryPHID'),
|
||||||
|
),
|
||||||
|
),
|
||||||
) + parent::getConfiguration();
|
) + parent::getConfiguration();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -71,6 +71,33 @@ final class PhabricatorRepositoryPushLog
|
||||||
self::CONFIG_BINARY => array(
|
self::CONFIG_BINARY => array(
|
||||||
'refNameRaw' => true,
|
'refNameRaw' => true,
|
||||||
),
|
),
|
||||||
|
self::CONFIG_COLUMN_SCHEMA => array(
|
||||||
|
'refType' => 'text12',
|
||||||
|
'refNameHash' => 'bytes12?',
|
||||||
|
'refNameRaw' => 'bytes?',
|
||||||
|
'refNameEncoding' => 'text16?',
|
||||||
|
'refOld' => 'text40?',
|
||||||
|
'refNew' => 'text40',
|
||||||
|
'mergeBase' => 'text40?',
|
||||||
|
'changeFlags' => 'uint32',
|
||||||
|
),
|
||||||
|
self::CONFIG_KEY_SCHEMA => array(
|
||||||
|
'key_repository' => array(
|
||||||
|
'columns' => array('repositoryPHID'),
|
||||||
|
),
|
||||||
|
'key_ref' => array(
|
||||||
|
'columns' => array('repositoryPHID', 'refNew'),
|
||||||
|
),
|
||||||
|
'key_name' => array(
|
||||||
|
'columns' => array('repositoryPHID', 'refNameHash'),
|
||||||
|
),
|
||||||
|
'key_event' => array(
|
||||||
|
'columns' => array('pushEventPHID'),
|
||||||
|
),
|
||||||
|
'key_pusher' => array(
|
||||||
|
'columns' => array('pusherPHID'),
|
||||||
|
),
|
||||||
|
),
|
||||||
) + parent::getConfiguration();
|
) + parent::getConfiguration();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,17 @@ final class PhabricatorRepositoryRefCursor extends PhabricatorRepositoryDAO
|
||||||
self::CONFIG_BINARY => array(
|
self::CONFIG_BINARY => array(
|
||||||
'refNameRaw' => true,
|
'refNameRaw' => true,
|
||||||
),
|
),
|
||||||
|
self::CONFIG_COLUMN_SCHEMA => array(
|
||||||
|
'refType' => 'text32',
|
||||||
|
'refNameHash' => 'bytes12',
|
||||||
|
'refNameEncoding' => 'text16',
|
||||||
|
'commitIdentifier' => 'text40',
|
||||||
|
),
|
||||||
|
self::CONFIG_KEY_SCHEMA => array(
|
||||||
|
'key_cursor' => array(
|
||||||
|
'columns' => array('repositoryPHID', 'refType', 'refNameHash'),
|
||||||
|
),
|
||||||
|
),
|
||||||
) + parent::getConfiguration();
|
) + parent::getConfiguration();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,185 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
final class PhabricatorRepositorySchemaSpec
|
||||||
|
extends PhabricatorConfigSchemaSpec {
|
||||||
|
|
||||||
|
public function buildSchemata() {
|
||||||
|
$this->buildLiskSchemata('PhabricatorRepositoryDAO');
|
||||||
|
|
||||||
|
$this->buildEdgeSchemata(new PhabricatorRepository());
|
||||||
|
|
||||||
|
$this->buildTransactionSchema(
|
||||||
|
new PhabricatorRepositoryTransaction());
|
||||||
|
|
||||||
|
$this->buildRawSchema(
|
||||||
|
id(new PhabricatorRepository())->getApplicationName(),
|
||||||
|
PhabricatorRepository::TABLE_BADCOMMIT,
|
||||||
|
array(
|
||||||
|
'fullCommitName' => 'text255',
|
||||||
|
'description' => 'text',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'PRIMARY' => array(
|
||||||
|
'columns' => array('fullCommitName'),
|
||||||
|
'unique' => true,
|
||||||
|
),
|
||||||
|
));
|
||||||
|
|
||||||
|
$this->buildRawSchema(
|
||||||
|
id(new PhabricatorRepository())->getApplicationName(),
|
||||||
|
PhabricatorRepository::TABLE_COVERAGE,
|
||||||
|
array(
|
||||||
|
'id' => 'id',
|
||||||
|
'branchID' => 'id',
|
||||||
|
'commitID' => 'id',
|
||||||
|
'pathID' => 'id',
|
||||||
|
'coverage' => 'bytes',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'PRIMARY' => array(
|
||||||
|
'columns' => array('id'),
|
||||||
|
'unique' => true,
|
||||||
|
),
|
||||||
|
'key_path' => array(
|
||||||
|
'columns' => array('branchID', 'pathID', 'commitID'),
|
||||||
|
),
|
||||||
|
));
|
||||||
|
|
||||||
|
$this->buildRawSchema(
|
||||||
|
id(new PhabricatorRepository())->getApplicationName(),
|
||||||
|
PhabricatorRepository::TABLE_FILESYSTEM,
|
||||||
|
array(
|
||||||
|
'repositoryID' => 'id',
|
||||||
|
'parentID' => 'id',
|
||||||
|
'svnCommit' => 'uint32',
|
||||||
|
'pathID' => 'id',
|
||||||
|
'existed' => 'bool',
|
||||||
|
'fileType' => 'uint32',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'PRIMARY' => array(
|
||||||
|
'columns' => array('repositoryID', 'parentID', 'pathID', 'svnCommit'),
|
||||||
|
'unique' => true,
|
||||||
|
),
|
||||||
|
'repositoryID' => array(
|
||||||
|
'columns' => array('repositoryID', 'svnCommit'),
|
||||||
|
),
|
||||||
|
));
|
||||||
|
|
||||||
|
$this->buildRawSchema(
|
||||||
|
id(new PhabricatorRepository())->getApplicationName(),
|
||||||
|
PhabricatorRepository::TABLE_LINTMESSAGE,
|
||||||
|
array(
|
||||||
|
'id' => 'id',
|
||||||
|
'branchID' => 'id',
|
||||||
|
'path' => 'text',
|
||||||
|
'line' => 'uint32',
|
||||||
|
'authorPHID' => 'phid?',
|
||||||
|
'code' => 'text32',
|
||||||
|
'severity' => 'text16',
|
||||||
|
'name' => 'text255',
|
||||||
|
'description' => 'text',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'PRIMARY' => array(
|
||||||
|
'columns' => array('id'),
|
||||||
|
'unique' => true,
|
||||||
|
),
|
||||||
|
'branchID' => array(
|
||||||
|
'columns' => array('branchID', 'path(64)'),
|
||||||
|
),
|
||||||
|
'branchID_2' => array(
|
||||||
|
'columns' => array('branchID', 'code', 'path(64)'),
|
||||||
|
),
|
||||||
|
'key_author' => array(
|
||||||
|
'columns' => array('authorPHID'),
|
||||||
|
),
|
||||||
|
));
|
||||||
|
|
||||||
|
$this->buildRawSchema(
|
||||||
|
id(new PhabricatorRepository())->getApplicationName(),
|
||||||
|
PhabricatorRepository::TABLE_PARENTS,
|
||||||
|
array(
|
||||||
|
'id' => 'id',
|
||||||
|
'childCommitID' => 'id',
|
||||||
|
'parentCommitID' => 'id',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'PRIMARY' => array(
|
||||||
|
'columns' => array('id'),
|
||||||
|
'unique' => true,
|
||||||
|
),
|
||||||
|
'key_child' => array(
|
||||||
|
'columns' => array('childCommitID', 'parentCommitID'),
|
||||||
|
'unique' => true,
|
||||||
|
),
|
||||||
|
'key_parent' => array(
|
||||||
|
'columns' => array('parentCommitID'),
|
||||||
|
),
|
||||||
|
));
|
||||||
|
|
||||||
|
$this->buildRawSchema(
|
||||||
|
id(new PhabricatorRepository())->getApplicationName(),
|
||||||
|
PhabricatorRepository::TABLE_PATH,
|
||||||
|
array(
|
||||||
|
'id' => 'id',
|
||||||
|
'path' => 'text',
|
||||||
|
'pathHash' => 'bytes32',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'PRIMARY' => array(
|
||||||
|
'columns' => array('id'),
|
||||||
|
'unique' => true,
|
||||||
|
),
|
||||||
|
'pathHash' => array(
|
||||||
|
'columns' => array('pathHash'),
|
||||||
|
'unique' => true,
|
||||||
|
),
|
||||||
|
));
|
||||||
|
|
||||||
|
$this->buildRawSchema(
|
||||||
|
id(new PhabricatorRepository())->getApplicationName(),
|
||||||
|
PhabricatorRepository::TABLE_PATHCHANGE,
|
||||||
|
array(
|
||||||
|
'repositoryID' => 'id',
|
||||||
|
'pathID' => 'id',
|
||||||
|
'commitID' => 'id',
|
||||||
|
'targetPathID' => 'id?',
|
||||||
|
'targetCommitID' => 'id?',
|
||||||
|
'changeType' => 'uint32',
|
||||||
|
'fileType' => 'uint32',
|
||||||
|
'isDirect' => 'bool',
|
||||||
|
'commitSequence' => 'uint32',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'PRIMARY' => array(
|
||||||
|
'columns' => array('commitID', 'pathID'),
|
||||||
|
'unique' => true,
|
||||||
|
),
|
||||||
|
'repositoryID' => array(
|
||||||
|
'columns' => array('repositoryID', 'pathID', 'commitSequence'),
|
||||||
|
),
|
||||||
|
));
|
||||||
|
|
||||||
|
$this->buildRawSchema(
|
||||||
|
id(new PhabricatorRepository())->getApplicationName(),
|
||||||
|
PhabricatorRepository::TABLE_SUMMARY,
|
||||||
|
array(
|
||||||
|
'repositoryID' => 'id',
|
||||||
|
'size' => 'uint32',
|
||||||
|
'lastCommitID' => 'id',
|
||||||
|
'epoch' => 'epoch?',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'PRIMARY' => array(
|
||||||
|
'columns' => array('repositoryID'),
|
||||||
|
'unique' => true,
|
||||||
|
),
|
||||||
|
'key_epoch' => array(
|
||||||
|
'columns' => array('epoch'),
|
||||||
|
),
|
||||||
|
));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -23,6 +23,16 @@ final class PhabricatorRepositoryStatusMessage
|
||||||
self::CONFIG_SERIALIZATION => array(
|
self::CONFIG_SERIALIZATION => array(
|
||||||
'parameters' => self::SERIALIZATION_JSON,
|
'parameters' => self::SERIALIZATION_JSON,
|
||||||
),
|
),
|
||||||
|
self::CONFIG_COLUMN_SCHEMA => array(
|
||||||
|
'statusType' => 'text32',
|
||||||
|
'statusCode' => 'text32',
|
||||||
|
),
|
||||||
|
self::CONFIG_KEY_SCHEMA => array(
|
||||||
|
'repositoryID' => array(
|
||||||
|
'columns' => array('repositoryID', 'statusType'),
|
||||||
|
'unique' => true,
|
||||||
|
),
|
||||||
|
),
|
||||||
) + parent::getConfiguration();
|
) + parent::getConfiguration();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,20 @@ final class PhabricatorRepositorySymbol extends PhabricatorRepositoryDAO {
|
||||||
return array(
|
return array(
|
||||||
self::CONFIG_IDS => self::IDS_MANUAL,
|
self::CONFIG_IDS => self::IDS_MANUAL,
|
||||||
self::CONFIG_TIMESTAMPS => false,
|
self::CONFIG_TIMESTAMPS => false,
|
||||||
|
self::CONFIG_COLUMN_SCHEMA => array(
|
||||||
|
'id' => null,
|
||||||
|
'symbolContext' => 'text128',
|
||||||
|
'symbolName' => 'text128',
|
||||||
|
'symbolType' => 'text12',
|
||||||
|
'symbolLanguage' => 'text32',
|
||||||
|
'lineNumber' => 'uint32',
|
||||||
|
),
|
||||||
|
self::CONFIG_KEY_SCHEMA => array(
|
||||||
|
'PRIMARY' => null,
|
||||||
|
'symbolName' => array(
|
||||||
|
'columns' => array('symbolName'),
|
||||||
|
),
|
||||||
|
),
|
||||||
) + parent::getConfiguration();
|
) + parent::getConfiguration();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,20 @@ final class PhabricatorRepositoryVCSPassword extends PhabricatorRepositoryDAO {
|
||||||
protected $userPHID;
|
protected $userPHID;
|
||||||
protected $passwordHash;
|
protected $passwordHash;
|
||||||
|
|
||||||
|
public function getConfiguration() {
|
||||||
|
return array(
|
||||||
|
self::CONFIG_COLUMN_SCHEMA => array(
|
||||||
|
'passwordHash' => 'text128',
|
||||||
|
),
|
||||||
|
self::CONFIG_KEY_SCHEMA => array(
|
||||||
|
'key_phid' => array(
|
||||||
|
'columns' => array('userPHID'),
|
||||||
|
'unique' => true,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
) + parent::getConfiguration();
|
||||||
|
}
|
||||||
|
|
||||||
public function setPassword(
|
public function setPassword(
|
||||||
PhutilOpaqueEnvelope $password,
|
PhutilOpaqueEnvelope $password,
|
||||||
PhabricatorUser $user) {
|
PhabricatorUser $user) {
|
||||||
|
|
Loading…
Reference in a new issue