@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.)
hq.recaptime.dev/wiki/Phorge
phorge
phabricator
1<?php
2
3/**
4 * Builds schemata definitions for core infrastructure.
5 */
6final class PhabricatorConfigCoreSchemaSpec
7 extends PhabricatorConfigSchemaSpec {
8
9 public function buildSchemata() {
10 // Build all Lisk table schemata.
11
12 $lisk_objects = id(new PhutilClassMapQuery())
13 ->setAncestorClass(PhabricatorLiskDAO::class)
14 ->execute();
15
16 $counters = array();
17 foreach ($lisk_objects as $object) {
18 if ($object->getConfigOption(LiskDAO::CONFIG_NO_TABLE)) {
19 continue;
20 }
21 $this->buildLiskObjectSchema($object);
22
23 $ids_counter = LiskDAO::IDS_COUNTER;
24 if ($object->getConfigOption(LiskDAO::CONFIG_IDS) == $ids_counter) {
25 $counters[$object->getApplicationName()] = true;
26 }
27 }
28
29 foreach ($counters as $database => $ignored) {
30 $this->buildRawSchema(
31 $database,
32 PhabricatorLiskDAO::COUNTER_TABLE_NAME,
33 array(
34 'counterName' => 'text32',
35 'counterValue' => 'id64',
36 ),
37 array(
38 'PRIMARY' => array(
39 'columns' => array('counterName'),
40 'unique' => true,
41 ),
42 ));
43 }
44
45 $ferret_objects = id(new PhutilClassMapQuery())
46 ->setAncestorClass(PhabricatorFerretInterface::class)
47 ->execute();
48
49 foreach ($ferret_objects as $ferret_object) {
50 $engine = $ferret_object->newFerretEngine();
51 $this->buildFerretIndexSchema($engine);
52 }
53 }
54}