- 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();
|
||||
|
||||
@ -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