Partage
  • Partager sur Facebook
  • Partager sur Twitter

API Platform multi schema postgresql

22 janvier 2020 à 14:13:37

Bonjour,

Je travaille actuellement sur un projet qui dois pouvoir, dynamiquement, pouvoir se connecter sur différents schémas selon l'utilisateur connecté.

Je suis sous symfony 3.4 et api_platform.

Pour arriver à mes fins je pensais intercepté l’exécutions des requêtes avec un subscriber ou un eventlistener et modifier l'ORM schéma (si possible).

Avez vous déjà rencontré cette problématique?

Pensez vous que cela est possible de cette façon? ou bien avez vous une idée de la façon de procéder autrement?

Merci

EDIT: Bon j'avance tout doucement mais surement.

Avec un eventListener j'arrive bien à intercepter chacune des requêtes et à modifier le nom du schéma mais il me reste toujours la séquence à modifier qui coince car c'est un champ privée.

Avez vous une idée sur la facon de faire pour modifier le nom le cette séquence?

mon listener:

protected $classMetadata;

    public function loadClassMetadata (LoadClassMetadataEventArgs $eventArgs)
    {
        $this->classMetadata = $eventArgs->getClassMetadata();
        $table = $this->classMetadata->table;
        $idGenerator = new IdentityGenerator();
        $table['schema'] = 'monSchema';
        $this->classMetadata->setPrimaryTable($table);
        $idTable = $this->searchIdTable();
        if($idTable){
            $columnName = $this->classMetadata->getColumnName($idTable);
            $sequenceName =  'monSchema.'.$table['name'].'_'.$columnName.'_seq';

        }
    }

Je crée donc dynamiquement le nom de la sequence $seqienceName mais je ne vois pas comment l'injecter.

-
Edité par itokia 23 janvier 2020 à 16:05:05

  • Partager sur Facebook
  • Partager sur Twitter