示例#1
0
 /**
  * Run
  *
  * @return void
  */
 public function run()
 {
     $null = null;
     $this->db = ConnectionManager::getDataSource($this->connection);
     $this->db->cacheSources = false;
     $this->db->begin($null);
     if (!isset($this->args[0]) || !in_array($this->args[0], array('insert', 'remove'))) {
         $this->out(__d('SoftDelete', 'Invalid option'));
         return $this->_displayHelp(null);
     }
     if (!isset($this->args[1])) {
         $this->out(__d('SoftDelete', 'You missed field name.'));
         return $this->_displayHelp(null);
     }
     try {
         $this->_run($this->args[0], $this->args[1]);
         $this->_clearCache();
     } catch (Exception $e) {
         $this->db->rollback($null);
         throw $e;
     }
     $this->out(__d('SoftDelete', 'All tables are updated.'));
     $this->out('');
     return $this->db->commit($null);
 }
示例#2
0
 /**
  * (non-PHPdoc)
  * @see ActiveSync/ActiveSync_TestCase::setUp()
  */
 public function setUp()
 {
     $this->_db = ConnectionManager::getDataSource('test');
     $this->_db->begin();
     $this->_deviceBackend = new Syncroton_Backend_Device($this->_db);
     $this->_folderBackend = new Syncroton_Backend_Folder($this->_db);
     require_once dirname(__FILE__) . DS . 'DeviceTest.php';
     $newDevice = DeviceTest::getTestDevice();
     $this->_device = $this->_deviceBackend->create($newDevice);
 }
示例#3
0
 /**
  * Run migration
  *
  * @param string $direction, up or down direction of migration process
  * @return boolean Status of the process
  */
 public function run($direction)
 {
     if (!in_array($direction, array('up', 'down'))) {
         throw new MigrationException($this, sprintf(__d('migrations', 'Migration direction (%s) is not one of valid directions.'), $direction), E_USER_NOTICE);
     }
     $this->direction = $direction;
     $null = null;
     $this->db = ConnectionManager::getDataSource($this->connection);
     $this->db->cacheSources = false;
     $this->db->begin($null);
     $this->Schema = new CakeSchema(array('connection' => $this->connection));
     try {
         $this->_invokeCallbacks('beforeMigration', $direction);
         $result = $this->_run();
         $this->_clearCache();
         $this->_invokeCallbacks('afterMigration', $direction);
         if (!$result) {
             return false;
         }
     } catch (Exception $e) {
         $this->db->rollback($null);
         throw $e;
     }
     return $this->db->commit($null);
 }
示例#4
0
 /**
  * Begin a transaction
  *
  * @param model $model
  * @return boolean True on success, false on fail
  * (i.e. if the database/model does not support transactions,
  * or a transaction has not started).
  * @access public
  */
 function begin(&$model)
 {
     if (parent::begin($model) && $this->execute($this->_commands['begin'])) {
         $this->_transactionStarted = true;
         return true;
     }
     return false;
 }
示例#5
0
 /**
  * (non-PHPdoc)
  * @see ActiveSync/ActiveSync_TestCase::setUp()
  */
 public function setUp()
 {
     $this->_db = ConnectionManager::getDataSource('test');
     $this->_db->begin();
     $this->_deviceBackend = new Syncroton_Backend_Device($this->_db);
 }