/**
  * Before returning the exportable-version of this table, unset any foreign
  * keys that had the option "export => false".
  *
  * @param bool    $parseForeignKeys
  * @return array
  */
 public function getExportableFormat($parseForeignKeys = true)
 {
     $data = parent::getExportableFormat($parseForeignKeys);
     // unset any fk's that we shouldn't export
     foreach ($this->no_export as $rel_alias) {
         $key_name = $this->getRelation($rel_alias)->getForeignKeyName();
         unset($data['options']['foreignKeys'][$key_name]);
     }
     return $data;
 }
Esempio n. 2
0
 /**
  * exportTable
  * exports given table into database based on column and option definitions
  *
  * @throws Doctrine_Connection_Exception    if some error other than Doctrine_Core::ERR_ALREADY_EXISTS
  *                                          occurred during the create table operation
  * @return boolean                          whether or not the export operation was successful
  *                                          false if table already existed in the database
  */
 public function exportTable(Doctrine_Table $table)
 {
     try {
         $data = $table->getExportableFormat();
         $this->conn->export->createTable($data['tableName'], $data['columns'], $data['options']);
     } catch (Doctrine_Connection_Exception $e) {
         // we only want to silence table already exists errors
         if ($e->getPortableCode() !== Doctrine_Core::ERR_ALREADY_EXISTS) {
             throw $e;
         }
     }
 }
Esempio n. 3
0
 /**
  * exportTable
  * exports given table into database based on column and option definitions
  *
  * @throws Doctrine_Connection_Exception    if some error other than Doctrine::ERR_ALREADY_EXISTS
  *                                          occurred during the create table operation
  * @return boolean                          whether or not the export operation was successful
  *                                          false if table already existed in the database
  */
 public function exportTable(Doctrine_Table $table)
 {
     /**
     TODO: maybe there should be portability option for the following check
     if ( ! Doctrine::isValidClassname($table->getOption('declaringClass')->getName())) {
         throw new Doctrine_Export_Exception('Class name not valid.');
     }
     */
     try {
         $data = $table->getExportableFormat();
         $this->conn->export->createTable($data['tableName'], $data['columns'], $data['options']);
     } catch (Doctrine_Connection_Exception $e) {
         // we only want to silence table already exists errors
         if ($e->getPortableCode() !== Doctrine::ERR_ALREADY_EXISTS) {
             throw $e;
         }
     }
 }