Commit 6ce7d88c authored by Jonathan.Wage's avatar Jonathan.Wage

Added ability to turn off foreign key sql exporting for specific models

parent d82b58aa
......@@ -205,7 +205,7 @@ class Doctrine_Export extends Doctrine_Connection_Module
*
* @return string
*/
public function createTableSql($name, array $fields, array $options = array())
public function createTableSql($name, array $fields, array $options = array(), $exportForeignKeySql = true)
{
if ( ! $name) {
throw new Doctrine_Export_Exception('no valid table name specified');
......@@ -242,7 +242,7 @@ class Doctrine_Export extends Doctrine_Connection_Module
$sql[] = $query;
if (isset($options['foreignKeys'])) {
if (isset($options['foreignKeys']) && $exportForeignKeySql) {
foreach ((array) $options['foreignKeys'] as $k => $definition) {
if (is_array($definition)) {
......@@ -1047,8 +1047,9 @@ class Doctrine_Export extends Doctrine_Connection_Module
$record = new $name();
$table = $record->getTable();
$data = $table->getExportableFormat();
$query = $this->conn->export->createTableSql($data['tableName'], $data['columns'], $data['options']);
$exportForeignKeySql = is_bool($table->getOption('export_foreign_key_sql')) ? $table->getOption('export_foreign_key_sql'):true;
$query = $this->conn->export->createTableSql($data['tableName'], $data['columns'], $data['options'], $exportForeignKeySql);
if (is_array($query)) {
$sql = array_merge($sql, $query);
......
......@@ -87,7 +87,7 @@ class Doctrine_Export_Mysql extends Doctrine_Export
*
* @return void
*/
public function createTableSql($name, array $fields, array $options = array())
public function createTableSql($name, array $fields, array $options = array(), $exportForeignKeySql = true)
{
if ( ! $name)
throw new Doctrine_Export_Exception('no valid table name specified');
......@@ -169,7 +169,7 @@ class Doctrine_Export_Mysql extends Doctrine_Export
}
$sql[] = $query;
if (isset($options['foreignKeys'])) {
if (isset($options['foreignKeys']) && $exportForeignKeySql) {
foreach ((array) $options['foreignKeys'] as $k => $definition) {
if (is_array($definition)) {
......
......@@ -291,7 +291,7 @@ class Doctrine_Export_Pgsql extends Doctrine_Export
* @param array $options
* @return unknown
*/
public function createTableSql($name, array $fields, array $options = array())
public function createTableSql($name, array $fields, array $options = array(), $exportForeignKeySql = true)
{
if ( ! $name) {
throw new Doctrine_Export_Exception('no valid table name specified');
......@@ -318,7 +318,7 @@ class Doctrine_Export_Pgsql extends Doctrine_Export
}
}
if (isset($options['foreignKeys'])) {
if (isset($options['foreignKeys']) && $exportForeignKeySql) {
foreach ((array) $options['foreignKeys'] as $k => $definition) {
if (is_array($definition)) {
......
......@@ -155,7 +155,7 @@ class Doctrine_Export_Sqlite extends Doctrine_Export
*
* @return void
*/
public function createTableSql($name, array $fields, array $options = array())
public function createTableSql($name, array $fields, array $options = array(), $exportForeignKeySql = true)
{
if ( ! $name) {
throw new Doctrine_Export_Exception('no valid table name specified');
......
......@@ -148,7 +148,7 @@ abstract class Doctrine_Record_Abstract extends Doctrine_Access
*/
public function option($name, $value = null)
{
if ($value == null) {
if ($value === null) {
if (is_array($name)) {
foreach ($name as $k => $v) {
$this->_table->setOption($k, $v);
......@@ -270,7 +270,7 @@ abstract class Doctrine_Record_Abstract extends Doctrine_Access
} else {
$className = 'Doctrine_Template_' . $tpl;
if ( ! class_exists($className, true)) {
if ( ! class_exists($className, true)) {
throw new Doctrine_Record_Exception("Couldn't load plugin.");
}
......
......@@ -294,16 +294,6 @@ class Doctrine_Table extends Doctrine_Configurable implements Countable
}
$this->repository = new Doctrine_Table_Repository($this);
}
/**
* getTemplates
* returns all templates attached to this table
*
* @return array an array containing all templates
*/
public function getTemplates()
{
return $this->_templates;
}
/**
* export
* exports this table to database based on column and option definitions
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment