Exemple #1
0
 /**
  * @param AbstractPlatform $platform
  * @param bool $saveMode
  * @return array
  */
 protected function _toSql(AbstractPlatform $platform, $saveMode = false)
 {
     $sql = array();
     if ($platform->supportsForeignKeyConstraints() && $saveMode == false) {
         foreach ($this->orphanedForeignKeys as $orphanedForeignKey) {
             $sql[] = $platform->getDropForeignKeySql($orphanedForeignKey, $orphanedForeignKey->getLocalTableName());
         }
     }
     if ($platform->supportsSequences() == true) {
         foreach ($this->changedSequences as $sequence) {
             $sql[] = $platform->getDropSequenceSql($sequence);
             $sql[] = $platform->getCreateSequenceSql($sequence);
         }
         if ($saveMode === false) {
             foreach ($this->removedSequences as $sequence) {
                 $sql[] = $platform->getDropSequenceSql($sequence);
             }
         }
         foreach ($this->newSequences as $sequence) {
             $sql[] = $platform->getCreateSequenceSql($sequence);
         }
     }
     foreach ($this->newTables as $table) {
         $sql = array_merge($sql, $platform->getCreateTableSql($table, AbstractPlatform::CREATE_FOREIGNKEYS | AbstractPlatform::CREATE_INDEXES));
     }
     if ($saveMode === false) {
         foreach ($this->removedTables as $table) {
             $sql[] = $platform->getDropTableSql($table);
         }
     }
     foreach ($this->changedTables as $tableDiff) {
         $sql = array_merge($sql, $platform->getAlterTableSql($tableDiff));
     }
     return $sql;
 }
 /**
  * Create a new table.
  *
  * @param Table $table
  * @param int $createFlags
  */
 public function createTable(Table $table)
 {
     $createFlags = AbstractPlatform::CREATE_INDEXES | AbstractPlatform::CREATE_FOREIGNKEYS;
     $this->_execSql($this->_platform->getCreateTableSql($table, $createFlags));
 }
 /**
  * Generate DDL Statements to create the accepted table with all its dependencies.
  *
  * @param Table $table
  */
 public function acceptTable(Table $table)
 {
     $this->_createTableQueries = array_merge($this->_createTableQueries, $this->_platform->getCreateTableSql($table));
 }