/** * Create Table method * * @param string $type Type of operation to be done, in this case 'create_table' * @param array $tables List of tables to be created * @return boolean Return true in case of success, otherwise false * @access protected */ public function _createTable($type, $tables) { foreach ($tables as $table => $fields) { $this->Schema->tables = array($table => $fields); $this->__invokeCallbacks('beforeAction', 'create_table', array('table' => $table)); $this->db->execute($this->db->createSchema($this->Schema)); $this->__invokeCallbacks('afterAction', 'create_table', array('table' => $table)); } return true; }
/** * Create Table method * * @param string $type Type of operation to be done, in this case 'create_table' * @param array $tables List of tables to be created * @return boolean Return true in case of success, otherwise false * @access protected */ protected function _createTable($type, $tables) { foreach ($tables as $table => $fields) { if (in_array($table, $this->db->listSources())) { throw new MigrationException($this, sprintf(__d('migrations', 'Table "%s" already exists in database.', true), $table)); } $this->Schema->tables = array($table => $fields); $this->_invokeCallbacks('beforeAction', 'create_table', array('table' => $table)); if (@$this->db->execute($this->db->createSchema($this->Schema)) === false) { throw new MigrationException($this, sprintf(__d('migrations', 'SQL Error: %s', true), $this->db->error)); } $this->_invokeCallbacks('afterAction', 'create_table', array('table' => $table)); } return true; }
/** * Create Table method * * @param string $type Type of operation to be done, in this case 'create_table' * @param array $tables List of tables to be created * @return boolean Return true in case of success, otherwise false */ protected function _createTable($type, $tables) { foreach ($tables as $table => $fields) { if (in_array($this->db->fullTableName($table, false, false), $this->db->listSources())) { throw new MigrationException($this, __d('migrations', 'Table "%s" already exists in database.', $this->db->fullTableName($table, false, false))); } $this->Schema->tables = array($table => $fields); $this->_invokeCallbacks('beforeAction', 'create_table', array('table' => $table)); try { $this->db->execute($this->db->createSchema($this->Schema)); } catch (Exception $exception) { throw new MigrationException($this, __d('migrations', 'SQL Error: %s', $exception->getMessage())); } $this->_invokeCallbacks('afterAction', 'create_table', array('table' => $table)); } return true; }