![]() |
|
Snippets |
|
The following patch will help you exclude the schema generation of certain tables when running propel-build-schema.
This might come in handy when you use propel-build-schema along with plugin schemas.
edit $sf_symfony_lib_dir/vendor/propel-generator/classes/propel/phing/PropelCreoleTransformTask.php
protected function createDatabaseNode($dbInfo) { $this->log("Processing database"); $node = $this->doc->createElement("database"); $node->setAttribute("name", $dbInfo->getName()); if ($vendorNode = $this->createVendorInfoNode($dbInfo->getVendorSpecificInfo())) { $node->appendChild($vendorNode); } global $schema_exclude_pattern; $pattern = $schema_exclude_pattern; $this->log("Exclude pattern : ".$pattern); // create and add table nodes foreach($dbInfo->getTables() as $table) { if (preg_match($pattern,$table->getName())) { $this->log("Skipping : ".$table->getName()." ( matches exclude pattern )"); continue; } $tableNode = $this->createTableNode($table); $node->appendChild($tableNode); } return $node; }
pattern provided via the $schema_exclude_pattern variable which can be set in config.php (kinda ugly but it works)
config.php
<?php // // symfony directories $sf_symfony_lib_dir = '/bridge/lib/symfony/1.0/lib'; $sf_symfony_data_dir = '/bridge/lib/symfony/1.0/data'; // skips schema creation for tables which name matches the following pattern // when executing propel-build-schema $schema_exclude_pattern = "/^sf_guard.*/i";