public static function failedToEnableSharding($dbName, $errorMessage) { return new self(sprintf('Failed to enable sharding for database "%s". Error from MongoDB: %s', $dbName, $errorMessage)); }
/** * Enable sharding for database which contains documents with given name. * * @param string $documentName * * @throws MongoDBException */ public function enableShardingForDbByDocumentName($documentName) { $dbName = $this->dm->getDocumentDatabase($documentName)->getName(); $adminDb = $this->dm->getConnection()->selectDatabase('admin'); $result = $adminDb->command(array('enableSharding' => $dbName)); if ($result['ok'] != 1 && $result['errmsg'] !== 'already enabled') { throw MongoDBException::failedToEnableSharding($dbName, $result['errmsg']); } }