當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Connection::getSchemaManager方法代碼示例

本文整理匯總了PHP中OC\DB\Connection::getSchemaManager方法的典型用法代碼示例。如果您正苦於以下問題:PHP Connection::getSchemaManager方法的具體用法?PHP Connection::getSchemaManager怎麽用?PHP Connection::getSchemaManager使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在OC\DB\Connection的用法示例。


在下文中一共展示了Connection::getSchemaManager方法的8個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: dropTable

 /**
  * @brief drop a table
  * @param string $tableName the table to drop
  */
 public function dropTable($tableName)
 {
     $sm = $this->conn->getSchemaManager();
     $fromSchema = $sm->createSchema();
     $toSchema = clone $fromSchema;
     $toSchema->dropTable($tableName);
     $sql = $fromSchema->getMigrateToSql($toSchema, $this->conn->getDatabasePlatform());
     $this->conn->executeQuery($sql);
 }
開發者ID:hjimmy,項目名稱:owncloud,代碼行數:13,代碼來源:mdb2schemamanager.php

示例2: run

 /**
  * Fix mime types
  */
 public function run(IOutput $out)
 {
     if (!$this->connection->getDatabasePlatform() instanceof SqlitePlatform) {
         return;
     }
     $sourceSchema = $this->connection->getSchemaManager()->createSchema();
     $schemaDiff = new SchemaDiff();
     foreach ($sourceSchema->getTables() as $tableSchema) {
         $primaryKey = $tableSchema->getPrimaryKey();
         if (!$primaryKey) {
             continue;
         }
         $columnNames = $primaryKey->getColumns();
         // add a column diff for every primary key column,
         // but do not actually change anything, this will
         // force the generation of SQL statements to alter
         // those tables, which will then trigger the
         // specific SQL code from OCSqlitePlatform
         try {
             $tableDiff = new TableDiff($tableSchema->getName());
             $tableDiff->fromTable = $tableSchema;
             foreach ($columnNames as $columnName) {
                 $columnSchema = $tableSchema->getColumn($columnName);
                 $columnDiff = new ColumnDiff($columnSchema->getName(), $columnSchema);
                 $tableDiff->changedColumns[] = $columnDiff;
                 $schemaDiff->changedTables[] = $tableDiff;
             }
         } catch (SchemaException $e) {
             // ignore
         }
     }
     $this->connection->beginTransaction();
     foreach ($schemaDiff->toSql($this->connection->getDatabasePlatform()) as $sql) {
         $this->connection->query($sql);
     }
     $this->connection->commit();
 }
開發者ID:GitHubUser4234,項目名稱:core,代碼行數:40,代碼來源:SqliteAutoincrement.php

示例3: saveSchemaToFile

 /**
  * @param string $file
  * @param \OC\DB\Connection $conn
  * @return bool
  */
 public static function saveSchemaToFile($file, \OC\DB\Connection $conn)
 {
     $config = \OC::$server->getConfig();
     $xml = new SimpleXMLElement('<database/>');
     $xml->addChild('name', $config->getSystemValue('dbname', 'owncloud'));
     $xml->addChild('create', 'true');
     $xml->addChild('overwrite', 'false');
     $xml->addChild('charset', 'utf8');
     $conn->getConfiguration()->setFilterSchemaAssetsExpression('/^' . $config->getSystemValue('dbtableprefix', 'oc_') . '/');
     foreach ($conn->getSchemaManager()->listTables() as $table) {
         self::saveTable($table, $xml->addChild('table'));
     }
     file_put_contents($file, $xml->asXML());
     return true;
 }
開發者ID:riso,項目名稱:owncloud-core,代碼行數:20,代碼來源:mdb2schemawriter.php

示例4: resynchronizeDatabaseSequences

    /**
     * @brief Resynchronizes all sequences of a database after using INSERTs
     *        without leaving out the auto-incremented column.
     * @param \OC\DB\Connection $conn
     * @return null
     */
    public function resynchronizeDatabaseSequences(Connection $conn)
    {
        $databaseName = $conn->getDatabase();
        $conn->getConfiguration()->setFilterSchemaAssetsExpression('/^' . $this->config->getSystemValue('dbtableprefix', 'oc_') . '/');
        foreach ($conn->getSchemaManager()->listSequences() as $sequence) {
            $sequenceName = $sequence->getName();
            $sqlInfo = 'SELECT table_schema, table_name, column_name
				FROM information_schema.columns
				WHERE column_default = ? AND table_catalog = ?';
            $sequenceInfo = $conn->fetchAssoc($sqlInfo, array("nextval('{$sequenceName}'::regclass)", $databaseName));
            $tableName = $sequenceInfo['table_name'];
            $columnName = $sequenceInfo['column_name'];
            $sqlMaxId = "SELECT MAX({$columnName}) FROM {$tableName}";
            $sqlSetval = "SELECT setval('{$sequenceName}', ({$sqlMaxId}))";
            $conn->executeQuery($sqlSetval);
        }
    }
開發者ID:riso,項目名稱:owncloud-core,代碼行數:23,代碼來源:pgsqltools.php

示例5: saveSchemaToFile

 /**
  * @param string $file
  * @param \OC\DB\Connection $conn
  * @return bool
  */
 public static function saveSchemaToFile($file, \OC\DB\Connection $conn)
 {
     $config = \OC::$server->getConfig();
     $xml = new SimpleXMLElement('<database/>');
     $xml->addChild('name', $config->getSystemValue('dbname', 'owncloud'));
     $xml->addChild('create', 'true');
     $xml->addChild('overwrite', 'false');
     $xml->addChild('charset', 'utf8');
     // FIX ME: bloody work around
     if ($config->getSystemValue('dbtype', 'sqlite') === 'oci') {
         $filterExpression = '/^"' . preg_quote($conn->getPrefix()) . '/';
     } else {
         $filterExpression = '/^' . preg_quote($conn->getPrefix()) . '/';
     }
     $conn->getConfiguration()->setFilterSchemaAssetsExpression($filterExpression);
     foreach ($conn->getSchemaManager()->listTables() as $table) {
         self::saveTable($table, $xml->addChild('table'));
     }
     file_put_contents($file, $xml->asXML());
     return true;
 }
開發者ID:evanjt,項目名稱:core,代碼行數:26,代碼來源:mdb2schemawriter.php

示例6: getDbStructure

 /**
  * saves database scheme to xml file
  * @param string $file name of file
  * @param int|string $mode
  * @return bool
  *
  * TODO: write more documentation
  */
 public function getDbStructure($file, $mode = MDB2_SCHEMA_DUMP_STRUCTURE)
 {
     $sm = $this->conn->getSchemaManager();
     return \OC_DB_MDB2SchemaWriter::saveSchemaToFile($file, $sm);
 }
開發者ID:Romua1d,項目名稱:core,代碼行數:13,代碼來源:mdb2schemamanager.php

示例7: getTables

 protected function getTables(Connection $db)
 {
     return $db->getSchemaManager()->listTableNames();
 }
開發者ID:Romua1d,項目名稱:core,代碼行數:4,代碼來源:converttype.php

示例8: getTables

 protected function getTables(Connection $db)
 {
     $db->getConfiguration()->setFilterSchemaAssetsExpression('/^' . $this->config->getSystemValue('dbtableprefix', 'oc_') . '/');
     return $db->getSchemaManager()->listTableNames();
 }
開發者ID:riso,項目名稱:owncloud-core,代碼行數:5,代碼來源:converttype.php


注:本文中的OC\DB\Connection::getSchemaManager方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。