当前位置: 首页>>代码示例>>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;未经允许,请勿转载。