You can add indexes by simple calling Doctrine_Record::index('indexName', $definition) where $definition is the
definition array.
An example of adding a simple index to field called 'name':
class IndexTest extends Doctrine_Record
{
public function setTableDefinition()
{
\$this->hasColumn('name', 'string');
\$this->index('myindex', array('fields' => 'name');
}
}
?>
An example of adding a multi-column index to field called 'name':
class MultiColumnIndexTest extends Doctrine_Record
{
public function setTableDefinition()
{
\$this->hasColumn('name', 'string');
\$this->hasColumn('code', 'string');
\$this->index('myindex', array('fields' => array('name', 'code')));
}
}
?>
An example of adding a multiple indexes on same table:
class MultipleIndexTest extends Doctrine_Record
{
public function setTableDefinition()
{
\$this->hasColumn('name', 'string');
\$this->hasColumn('code', 'string');
\$this->hasColumn('age', 'integer');
\$this->index('myindex', array('fields' => array('name', 'code')));
\$this->index('ageindex', array('fields' => array('age'));
}
}
?>