예제 #1
0
파일: SessionCell.php 프로젝트: kingsj/core
 /**
  * Process DB schema
  *
  * @param array  $schema Schema
  * @param string $type   Schema type
  *
  * @return array
  */
 public function processSchema(array $schema, $type)
 {
     $schema = parent::processSchema($schema, $type);
     if (\XLite\Core\Database::SCHEMA_CREATE == $type) {
         $schema[] = 'ALTER TABLE `' . $this->getClassMetadata()->getTableName() . '`' . ' ADD CONSTRAINT `session_cell_to_session` FOREIGN KEY `id` (`id`)' . ' REFERENCES `' . $this->_em->getClassMetadata('XLite\\Model\\Session')->getTableName() . '` (`id`)' . ' ON DELETE CASCADE ON UPDATE CASCADE';
     } elseif (\XLite\Core\Database::SCHEMA_UPDATE == $type) {
         $schema = preg_grep('/DROP FOREIGN KEY `?session_cell_to_session`?/Ss', $schema, PREG_GREP_INVERT);
     }
     return $schema;
 }