- WIp on Migration for mssql
This commit is contained in:
		
							parent
							
								
									fb4985160a
								
							
						
					
					
						commit
						c719e4a6d1
					
				| @ -2,11 +2,23 @@ | ||||
| 
 | ||||
| namespace Ulmus\Entity\Mssql; | ||||
| 
 | ||||
| use Ulmus\Attribute\Obj\Table as TableObj; | ||||
| use Ulmus\Attribute\Property\Field; | ||||
| use Ulmus\ConnectionAdapter; | ||||
| use Ulmus\Entity\Mysql\id; | ||||
| use Ulmus\Repository; | ||||
| use Ulmus\Ulmus; | ||||
| 
 | ||||
| #[TableObj(name: "columns", schema: "information_schema")]
 | ||||
| class Column extends \Ulmus\Entity\InformationSchema\Column | ||||
| { | ||||
|     /* | ||||
|     public static function repository(string $alias = Repository::DEFAULT_ALIAS, ConnectionAdapter $adapter = null): Repository | ||||
|     { | ||||
|         $adapter = Ulmus::$registeredAdapters[$this->loadedFromAdapter]; | ||||
| 
 | ||||
|         return Ulmus::repository(static::class, $alias, $adapter); | ||||
|     }*/ | ||||
| 
 | ||||
|     # TODO ! Handle FUNCTIONAL default value
 | ||||
|     protected function canHaveDefaultValue(): bool | ||||
|  | ||||
| @ -5,13 +5,22 @@ namespace Ulmus\Entity\Mssql; | ||||
| use Ulmus\EntityCollection, | ||||
|     Ulmus\Entity\Field\Datetime; | ||||
| 
 | ||||
| use Ulmus\{Attribute\Obj\Table as TableObj,}; | ||||
| use Ulmus\{Attribute\Obj\Table as TableObj, Ulmus}; | ||||
| use Ulmus\Attribute\Property\{Field, Filter, FilterJoin, Relation, Join, Virtual, Where}; | ||||
| use Ulmus\Repository; | ||||
| 
 | ||||
| #[TableObj(name: "tables", database: "information_schema")]
 | ||||
| #[TableObj(name: "tables", schema: "information_schema")]
 | ||||
| class Table extends \Ulmus\Entity\InformationSchema\Table | ||||
| { | ||||
|     #[Relation(type: "oneToMany", key: "name", foreignKey: [ Column::class, 'tableName' ], entity: Column::class)]
 | ||||
|     #[Where('TABLE_SCHEMA', generateValue: [ Table::class, 'getSchema' ])]
 | ||||
|     ##[Filter(method: "filterColumns")]
 | ||||
|     public EntityCollection $columns; | ||||
| 
 | ||||
|     public function filterColumns() : Repository | ||||
|     { | ||||
|         $adapter = Ulmus::$registeredAdapters[$this->loadedFromAdapter]; | ||||
| 
 | ||||
|         return Column::repository(Repository\MssqlRepository::DEFAULT_ALIAS, $adapter); | ||||
|     } | ||||
| } | ||||
| @ -6,6 +6,7 @@ use Ulmus\Attribute\Property\{ | ||||
|     Field, OrderBy, Where, Having, Relation, Filter, Join, FilterJoin, WithJoin | ||||
| }; | ||||
| use Psr\SimpleCache\CacheInterface; | ||||
| use Ulmus\Adapter\AdapterInterface; | ||||
| use Ulmus\Common\EntityResolver; | ||||
| use Ulmus\Entity\EntityInterface; | ||||
| use Ulmus\Repository\RepositoryInterface; | ||||
| @ -25,7 +26,7 @@ class Repository implements RepositoryInterface | ||||
| 
 | ||||
|     public ? ConnectionAdapter $adapters; | ||||
| 
 | ||||
|     public readonly QueryBuilder\QueryBuilderInterface $queryBuilder; | ||||
|     public QueryBuilder\QueryBuilderInterface $queryBuilder; | ||||
| 
 | ||||
|     protected EntityResolver $entityResolver; | ||||
| 
 | ||||
| @ -36,6 +37,11 @@ class Repository implements RepositoryInterface | ||||
|         $this->alias = $alias; | ||||
|         $this->entityResolver = Ulmus::resolveEntity($entity); | ||||
| 
 | ||||
|         $this->setAdapter($adapter); | ||||
|     } | ||||
| 
 | ||||
|     public function setAdapter(? ConnectionAdapter $adapter = null) : void { | ||||
| 
 | ||||
|         if ($adapter) { | ||||
|             $this->adapter = $adapter; | ||||
| 
 | ||||
|  | ||||
| @ -264,7 +264,7 @@ class RelationBuilder | ||||
|     { | ||||
|         $relation->entity ??= $this->resolver->reflectedClass->getProperties()[$name]->getTypes()[0]->type; | ||||
| 
 | ||||
|         $this->repository = $relation->entity::repository(); | ||||
|         $this->repository ??= $relation->entity::repository(); | ||||
| 
 | ||||
|         $this->applyWhere(); | ||||
| 
 | ||||
| @ -282,7 +282,7 @@ class RelationBuilder | ||||
| 
 | ||||
|             if (isset($value)) { | ||||
|                 #$this->repository->where( is_object($relation->foreignKey) ? $relation->foreignKey : $relation->entity::field($relation->foreignKey), $value );
 | ||||
|                 $this->repository->where( $relation->foreignKey($this->repository), $value ); | ||||
|                 $this->repository->where($relation->foreignKey($this->repository), $value); | ||||
|             } | ||||
|             else { | ||||
|                 $this->repository->where(Sql::raw('TRUE'), Sql::raw('FALSE')); | ||||
| @ -296,7 +296,7 @@ class RelationBuilder | ||||
|     { | ||||
|         extract($this->relationAnnotations($name, $relation)); | ||||
| 
 | ||||
|         $this->repository = $relationRelation->entity::repository(); | ||||
|         $this->repository ??= $relationRelation->entity::repository(); | ||||
| 
 | ||||
|         $bridgeAlias = $relation->bridgeField ?? uniqid("bridge_"); | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user