1
0
mirror of synced 2024-12-14 15:16:04 +03:00

Fixes to make schema importing work.

This commit is contained in:
Jonathan.Wage 2007-09-20 19:18:05 +00:00
parent 433035fd28
commit 1e1090700c
2 changed files with 29 additions and 1 deletions

View File

@ -106,6 +106,7 @@ abstract class Doctrine_Import_Schema
foreach ($array as $name => $properties) { foreach ($array as $name => $properties) {
$className = $properties['className']; $className = $properties['className'];
$relations = $properties['relations']; $relations = $properties['relations'];
$columns = $properties['columns'];
foreach ($relations as $alias => $relation) { foreach ($relations as $alias => $relation) {
$class = isset($relation['class']) ? $relation['class']:$alias; $class = isset($relation['class']) ? $relation['class']:$alias;
@ -113,10 +114,17 @@ abstract class Doctrine_Import_Schema
$relation['alias'] = $alias; $relation['alias'] = $alias;
$relation['class'] = $class; $relation['class'] = $class;
if (isset($relation['type']) && $relation['type']) {
$relation['type'] = $relation['type'] === 'one' ? Doctrine_Relation::ONE:Doctrine_Relation::MANY;
} else {
$relation['type'] = Doctrine_Relation::ONE;
}
$this->relations[$className][$class] = $relation; $this->relations[$className][$class] = $relation;
} }
} }
/*
// Fix the other end of the relations // Fix the other end of the relations
foreach($this->relations as $className => $relations) { foreach($this->relations as $className => $relations) {
foreach ($relations AS $alias => $relation) { foreach ($relations AS $alias => $relation) {
@ -125,9 +133,11 @@ abstract class Doctrine_Import_Schema
$newRelation['local'] = $relation['foreign']; $newRelation['local'] = $relation['foreign'];
$newRelation['class'] = $className; $newRelation['class'] = $className;
$newRelation['alias'] = $className; $newRelation['alias'] = $className;
$newRelation['type'] = $relation['type'] === Doctrine_Relation::ONE ? Doctrine_Relation::MANY:Doctrine_Relation::ONE;
$this->relations[$relation['class']][$className] = $newRelation; $this->relations[$relation['class']][$className] = $newRelation;
} }
} }
*/
} }
} }

View File

@ -9,6 +9,13 @@ User:
username: username:
type: string type: string
length: 11 length: 11
relations:
Groups:
class: Group
refClass: UserGroup
local: user_id
foreign: group_id
type: many
UserGroup: UserGroup:
tableName: user_group tableName: user_group
@ -17,16 +24,20 @@ UserGroup:
user_id: user_id:
type: int type: int
length: 11 length: 11
primary: true
group_id: group_id:
type: int type: int
length: 11 length: 11
primary: true
relations: relations:
User: User:
foreign: id foreign: id
local: user_id local: user_id
type: one
Group: Group:
foreign: id foreign: id
local: group_id local: group_id
type: one
Group: Group:
tableName: group tableName: group
@ -37,4 +48,11 @@ Group:
autoincrement: true autoincrement: true
name: name:
type: string type: string
length: 255 length: 255
relations:
Users:
class: User
refClass: UserGroup
local: group_id
foreign: user_id
type: many