public function postUp($manager)
 {
     // add the post-migration code here
     require_once $_SERVER['PWD'] . '/base/lib/inc.php';
     $oConnection = Propel::getConnection(DocumentPeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
     Propel::disableInstancePooling();
     $stmt = DocumentPeer::doSelectStmt(DocumentQuery::create()->clearSelectColumns()->addSelectColumn('documents.id')->addSelectColumn('documents.hash'));
     foreach ($stmt->fetchAll(PDO::FETCH_NUM) as $row) {
         $iId = $row[0];
         $sHash = $row[1];
         $oConnection->exec('INSERT IGNORE INTO `document_data` (`hash`, `data`, `created_at`, `updated_at`, `created_by`, `updated_by`) VALUES ("' . $sHash . '", (SELECT `data` FROM `documents` WHERE `id` = ' . $iId . '), (SELECT `created_at` FROM `documents` WHERE `id` = ' . $iId . '), (SELECT `updated_at` FROM `documents` WHERE `id` = ' . $iId . '), (SELECT `created_by` FROM `documents` WHERE `id` = ' . $iId . '), (SELECT `updated_by` FROM `documents` WHERE `id` = ' . $iId . '))');
     }
     $stmt->closeCursor();
 }
Exemple #2
0
 /**
  * Reloads this object from datastore based on primary key and (optionally) resets all associated objects.
  *
  * This will only work if the object has been saved and has a valid primary key set.
  *
  * @param      boolean $deep (optional) Whether to also de-associated any related objects.
  * @param      PropelPDO $con (optional) The PropelPDO connection to use.
  * @return     void
  * @throws     PropelException - if this object is deleted, unsaved or doesn't have pk match in db
  */
 public function reload($deep = false, PropelPDO $con = null)
 {
     if ($this->isDeleted()) {
         throw new PropelException("Cannot reload a deleted object.");
     }
     if ($this->isNew()) {
         throw new PropelException("Cannot reload an unsaved object.");
     }
     if ($con === null) {
         $con = Propel::getConnection(DocumentPeer::DATABASE_NAME, Propel::CONNECTION_READ);
     }
     // We don't need to alter the object instance pool; we're just modifying this instance
     // already in the pool.
     $stmt = DocumentPeer::doSelectStmt($this->buildPkeyCriteria(), $con);
     $row = $stmt->fetch(PDO::FETCH_NUM);
     $stmt->closeCursor();
     if (!$row) {
         throw new PropelException('Cannot find matching row in the database to reload object values.');
     }
     $this->hydrate($row, 0, true);
     // rehydrate
     if ($deep) {
         // also de-associate any related objects?
     }
     // if (deep)
 }
Exemple #3
0
 public static function doDelete($values, PropelPDO $con = null)
 {
     if ($con === null) {
         $con = Propel::getConnection(PagePeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
     }
     if ($values instanceof Criteria) {
         // rename for clarity
         $criteria = clone $values;
     } elseif ($values instanceof Document) {
         // it's a model object
         // create criteria based on pk values
         $criteria = $values->buildPkeyCriteria();
     } else {
         // it's a primary key, or an array of pks
         $criteria = new Criteria(self::DATABASE_NAME);
         $criteria->add(PagePeer::ID, (array) $values, Criteria::IN);
     }
     $oHashCriteria = clone $criteria;
     $aHashes = array();
     $stmt = DocumentPeer::doSelectStmt($oHashCriteria->clearSelectColumns()->addSelectColumn(DocumentPeer::HASH));
     while (($row = $stmt->fetch(PDO::FETCH_NUM)) !== false) {
         $sHash = $row[0];
         if (!isset($aHashes[$sHash])) {
             $aHashes[$sHash] = 0;
         }
         $aHashes[$sHash]++;
     }
     foreach ($aHashes as $sHash => $iCount) {
         // Should delete the data object if all documents with this hash are to be deleted
         if (DocumentQuery::create()->filterByHash($sHash)->count() === $iCount) {
             $oDocumentData = DocumentDataQuery::create()->findPk($sHash);
             if ($oDocumentData) {
                 $oDocumentData->delete();
             }
         }
     }
     $stmt->closeCursor();
     return parent::doDelete($criteria, $con);
 }
Exemple #4
0
 /**
  * Selects several row from the DB.
  *
  * @param      Criteria $criteria The Criteria object used to build the SELECT statement.
  * @param      PropelPDO $con
  * @return array           Array of selected Objects
  * @throws PropelException Any exceptions caught during processing will be
  *		 rethrown wrapped into a PropelException.
  */
 public static function doSelect(Criteria $criteria, PropelPDO $con = null)
 {
     return DocumentPeer::populateObjects(DocumentPeer::doSelectStmt($criteria, $con));
 }