Something went wrong. Try again.
@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main hq.recaptime.dev/wiki/Phorge
phorge phabricator
Something went wrong. Try again.
1.1 kB · 43 lines
PHP
1234567891011121314151617181920212223242526272829303132333435363738394041424344<?php
/** * Used by unit tests to build storage fixtures. */final class PhabricatorStorageFixtureScopeGuard extends Phobject {
private $name;
public function __construct($name) { $this->name = $name;
execx( 'php %s upgrade --force --namespace %s', $this->getStorageBinPath(), $this->name);
PhabricatorLiskDAO::pushStorageNamespace($name);
// Destructor is not called with fatal error. register_shutdown_function(array($this, 'destroy')); }
public function destroy() { PhabricatorLiskDAO::popStorageNamespace();
// NOTE: We need to close all connections before destroying the databases. // If we do not, the "DROP DATABASE ..." statements may hang, waiting for // our connections to close. PhabricatorLiskDAO::closeAllConnections();
execx( 'php %s destroy --force --namespace %s', $this->getStorageBinPath(), $this->name); }
private function getStorageBinPath() { $root = dirname(phutil_get_library_root('phabricator')); return $root.'/scripts/sql/manage_storage.php'; }
}