Added ability to turn off foreign key sql exporting for specific models
This commit is contained in:
parent
d82b58aa10
commit
6ce7d88c0b
@ -205,7 +205,7 @@ class Doctrine_Export extends Doctrine_Connection_Module
|
|||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function createTableSql($name, array $fields, array $options = array())
|
public function createTableSql($name, array $fields, array $options = array(), $exportForeignKeySql = true)
|
||||||
{
|
{
|
||||||
if ( ! $name) {
|
if ( ! $name) {
|
||||||
throw new Doctrine_Export_Exception('no valid table name specified');
|
throw new Doctrine_Export_Exception('no valid table name specified');
|
||||||
@ -242,7 +242,7 @@ class Doctrine_Export extends Doctrine_Connection_Module
|
|||||||
|
|
||||||
$sql[] = $query;
|
$sql[] = $query;
|
||||||
|
|
||||||
if (isset($options['foreignKeys'])) {
|
if (isset($options['foreignKeys']) && $exportForeignKeySql) {
|
||||||
|
|
||||||
foreach ((array) $options['foreignKeys'] as $k => $definition) {
|
foreach ((array) $options['foreignKeys'] as $k => $definition) {
|
||||||
if (is_array($definition)) {
|
if (is_array($definition)) {
|
||||||
@ -1047,8 +1047,9 @@ class Doctrine_Export extends Doctrine_Connection_Module
|
|||||||
$record = new $name();
|
$record = new $name();
|
||||||
$table = $record->getTable();
|
$table = $record->getTable();
|
||||||
$data = $table->getExportableFormat();
|
$data = $table->getExportableFormat();
|
||||||
|
$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']);
|
|
||||||
|
$query = $this->conn->export->createTableSql($data['tableName'], $data['columns'], $data['options'], $exportForeignKeySql);
|
||||||
|
|
||||||
if (is_array($query)) {
|
if (is_array($query)) {
|
||||||
$sql = array_merge($sql, $query);
|
$sql = array_merge($sql, $query);
|
||||||
|
@ -87,7 +87,7 @@ class Doctrine_Export_Mysql extends Doctrine_Export
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function createTableSql($name, array $fields, array $options = array())
|
public function createTableSql($name, array $fields, array $options = array(), $exportForeignKeySql = true)
|
||||||
{
|
{
|
||||||
if ( ! $name)
|
if ( ! $name)
|
||||||
throw new Doctrine_Export_Exception('no valid table name specified');
|
throw new Doctrine_Export_Exception('no valid table name specified');
|
||||||
@ -169,7 +169,7 @@ class Doctrine_Export_Mysql extends Doctrine_Export
|
|||||||
}
|
}
|
||||||
$sql[] = $query;
|
$sql[] = $query;
|
||||||
|
|
||||||
if (isset($options['foreignKeys'])) {
|
if (isset($options['foreignKeys']) && $exportForeignKeySql) {
|
||||||
|
|
||||||
foreach ((array) $options['foreignKeys'] as $k => $definition) {
|
foreach ((array) $options['foreignKeys'] as $k => $definition) {
|
||||||
if (is_array($definition)) {
|
if (is_array($definition)) {
|
||||||
|
@ -291,7 +291,7 @@ class Doctrine_Export_Pgsql extends Doctrine_Export
|
|||||||
* @param array $options
|
* @param array $options
|
||||||
* @return unknown
|
* @return unknown
|
||||||
*/
|
*/
|
||||||
public function createTableSql($name, array $fields, array $options = array())
|
public function createTableSql($name, array $fields, array $options = array(), $exportForeignKeySql = true)
|
||||||
{
|
{
|
||||||
if ( ! $name) {
|
if ( ! $name) {
|
||||||
throw new Doctrine_Export_Exception('no valid table name specified');
|
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) {
|
foreach ((array) $options['foreignKeys'] as $k => $definition) {
|
||||||
if (is_array($definition)) {
|
if (is_array($definition)) {
|
||||||
|
@ -155,7 +155,7 @@ class Doctrine_Export_Sqlite extends Doctrine_Export
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function createTableSql($name, array $fields, array $options = array())
|
public function createTableSql($name, array $fields, array $options = array(), $exportForeignKeySql = true)
|
||||||
{
|
{
|
||||||
if ( ! $name) {
|
if ( ! $name) {
|
||||||
throw new Doctrine_Export_Exception('no valid table name specified');
|
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)
|
public function option($name, $value = null)
|
||||||
{
|
{
|
||||||
if ($value == null) {
|
if ($value === null) {
|
||||||
if (is_array($name)) {
|
if (is_array($name)) {
|
||||||
foreach ($name as $k => $v) {
|
foreach ($name as $k => $v) {
|
||||||
$this->_table->setOption($k, $v);
|
$this->_table->setOption($k, $v);
|
||||||
@ -270,7 +270,7 @@ abstract class Doctrine_Record_Abstract extends Doctrine_Access
|
|||||||
} else {
|
} else {
|
||||||
$className = 'Doctrine_Template_' . $tpl;
|
$className = 'Doctrine_Template_' . $tpl;
|
||||||
|
|
||||||
if ( ! class_exists($className, true)) {
|
if ( ! class_exists($className, true)) {
|
||||||
throw new Doctrine_Record_Exception("Couldn't load plugin.");
|
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);
|
$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
|
* export
|
||||||
* exports this table to database based on column and option definitions
|
* exports this table to database based on column and option definitions
|
||||||
|
Loading…
x
Reference in New Issue
Block a user