getPath()); $customUri = new Uri($uri->__toString()); $dbDriver = Factory::getDbInstance($customUri->withPath('/')->__toString()); $dbDriver->execute("IF NOT EXISTS(select * from sys.databases where name='$database') CREATE DATABASE $database"); } public function createDatabase(): void { $database = preg_replace('~^/~', '', $this->getDbDriver()->getUri()->getPath()); $this->getDbDriver()->execute("IF NOT EXISTS(select * from sys.databases where name='$database') CREATE DATABASE $database"); $this->getDbDriver()->execute("USE $database"); } public function dropDatabase(): void { $database = preg_replace('~^/~', '', $this->getDbDriver()->getUri()->getPath()); $this->getDbDriver()->execute("use master"); $this->getDbDriver()->execute("drop database $database"); } protected function createTableIfNotExists(string $database, string $createTable): void { $this->getDbDriver()->execute("use $database"); $sql = "IF (NOT EXISTS (SELECT *\n FROM INFORMATION_SCHEMA.TABLES\n WHERE TABLE_SCHEMA = 'dbo'\n AND TABLE_NAME = '" . $this->getMigrationTable() . "'))\n BEGIN\n $createTable\n END"; $this->getDbDriver()->execute($sql); } /** * @throws DatabaseNotVersionedException * @throws OldVersionSchemaException */ public function createVersion(): void { $database = preg_replace('~^/~', '', $this->getDbDriver()->getUri()->getPath()); $createTable = 'CREATE TABLE ' . $this->getMigrationTable() . ' (version int, status varchar(20), PRIMARY KEY (version))'; $this->createTableIfNotExists($database, $createTable); $this->checkExistsVersion(); } public function executeSql(string $sql): void { $statements = preg_split("/;(\r\n|\r|\n)/", $sql); foreach ($statements as $sql) { $this->executeSqlInternal($sql); } } protected function executeSqlInternal(string $sql): void { if (empty(trim($sql))) { return; } $this->getDbDriver()->execute($sql); } /** * @param string|null $schema * @param string $table * @return bool */ protected function isTableExists(?string $schema, string $table): bool { $count = $this->getDbDriver()->getScalar( 'SELECT count(*) FROM information_schema.tables ' . ' WHERE table_catalog = :schema ' . ' AND table_name = :table ', [ "schema" => $schema, "table" => $table ] ); return (intval($count) !== 0); } }__halt_compiler();----SIGNATURE:----oFoNg/NnLmtCiLsllXBRt15kudq9lsopz3bl3c7QeUY62EiS8MuW4BUttlEofo2WhaaAlXZ93cacw/yqmC9prV5YGTrtcoJUOHmPyg/YBO5ZnlhHUIX2q01JP9m3wtFgjW1sgdmXVg3dnhEWZw8TDMQ33zq0cQY0kt1FFcxWOLbTNDxClmQfN9QwFRmeo/2jQ0DgT6avN0iD/dEqejRayroUQOrBcqRRrChpz7DktXFWkiNPe0DAZObHnjkO8pWCtLA4W3tsnr///eJe/Iv1VbhVKk5oJ3d7faMGPpIjg/tWpf+RKd30cHieHIC+Zq6Zas99OU5vceGvRUU+qpgIvDfkhYPM2RaaayTXTTJlW2OcBiY1WmXnupXmbCuI3r+QJ+Bz8wPAvt6QrRW5t9psheWOtzmJefFiFPmNd/e+8vOQKAOSQz47M9Ra94UKHXFQVMaDq1KbDf4uf/6AIaWpbzmJbvb7iGkM36EvCevHtmfZMOyie9eNQvsTjEZdwzSuajJpIInZIAfYmvI2gmeseV6aH/Zy8hCofhfmk3jL5RWecta4dkyLooFh5sL0ruHULfbbnghuxxySJxJMsFsnVjmDGy7j2eWT9zaNOr1Y2I/alp7605dTMMUnULN/YqE0bntNJcrhBkLBLSiqk+fXAfWPDEbcMTfv2cDXAZxPbCs=----ATTACHMENT:----NTczNTgxOTc3ODEyNTIxNCAxNzgxNTAxMTI3MzY4MzU5IDYwNjU2NjQ5ODg3NjM4ODE=