Fix schema merging and fixed issue with fixtures saving.
This commit is contained in:
parent
c50b2bc375
commit
ee9e79d09e
@ -64,7 +64,7 @@ class Doctrine_Data_Import extends Doctrine_Data
|
|||||||
|
|
||||||
// If they specified a specific yml file
|
// If they specified a specific yml file
|
||||||
if (end($e) == 'yml') {
|
if (end($e) == 'yml') {
|
||||||
$array = array_merge_recursive(Doctrine_Parser::load($dir, $this->getFormat()), $array);
|
$array = array_merge(Doctrine_Parser::load($dir, $this->getFormat()), $array);
|
||||||
// If they specified a directory
|
// If they specified a directory
|
||||||
} else if(is_dir($dir)) {
|
} else if(is_dir($dir)) {
|
||||||
$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir),
|
$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir),
|
||||||
@ -73,7 +73,7 @@ class Doctrine_Data_Import extends Doctrine_Data
|
|||||||
foreach ($it as $file) {
|
foreach ($it as $file) {
|
||||||
$e = explode('.', $file->getFileName());
|
$e = explode('.', $file->getFileName());
|
||||||
if (in_array(end($e), $this->getFormats())) {
|
if (in_array(end($e), $this->getFormats())) {
|
||||||
$array = array_merge_recursive(Doctrine_Parser::load($file->getPathName(), $this->getFormat()), $array);
|
$array = array_merge(Doctrine_Parser::load($file->getPathName(), $this->getFormat()), $array);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -172,7 +172,20 @@ class Doctrine_Data_Import extends Doctrine_Data
|
|||||||
|
|
||||||
$manager = Doctrine_Manager::getInstance();
|
$manager = Doctrine_Manager::getInstance();
|
||||||
foreach ($manager as $connection) {
|
foreach ($manager as $connection) {
|
||||||
$connection->flush();
|
$objects = array();
|
||||||
|
foreach ($this->_importedObjects as $object) {
|
||||||
|
$objects[] = get_class($object);
|
||||||
|
}
|
||||||
|
|
||||||
|
$tree = $connection->unitOfWork->buildFlushTree($objects);
|
||||||
|
|
||||||
|
foreach ($tree as $model) {
|
||||||
|
foreach ($this->_importedObjects as $obj) {
|
||||||
|
if ($obj instanceof $model) {
|
||||||
|
$obj->save();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -103,7 +103,7 @@ class Doctrine_Import_Schema
|
|||||||
|
|
||||||
foreach ((array) $schema AS $s) {
|
foreach ((array) $schema AS $s) {
|
||||||
if (is_file($s)) {
|
if (is_file($s)) {
|
||||||
$array = array_merge($array, $this->parseSchema($s, $format));
|
$array = array_merge($this->parseSchema($s, $format), $array);
|
||||||
} else if (is_dir($s)) {
|
} else if (is_dir($s)) {
|
||||||
$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($s),
|
$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($s),
|
||||||
RecursiveIteratorIterator::LEAVES_ONLY);
|
RecursiveIteratorIterator::LEAVES_ONLY);
|
||||||
@ -111,7 +111,7 @@ class Doctrine_Import_Schema
|
|||||||
foreach ($it as $file) {
|
foreach ($it as $file) {
|
||||||
$e = explode('.', $file->getFileName());
|
$e = explode('.', $file->getFileName());
|
||||||
if (end($e) === $format) {
|
if (end($e) === $format) {
|
||||||
$array = array_merge($array, $this->parseSchema($file->getPathName(), $format));
|
$array = array_merge($this->parseSchema($file->getPathName(), $format), $array);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user