Skip to content
Snippets Groups Projects
Select Git revision
  • f73b47d18081634777ca461769df0a15ab6e3149
  • master default protected
  • ll-workflow
  • alc-scindage-donnees-pj
  • b24
  • FJ_LL_Tbl_Contrat
  • alc-docker-node
  • ll-apiplatform
  • php84
  • ll-rgpd
  • b23
  • alc-filtre-type-intervenant
  • ll-sans-mdb5
  • formules-ancienne-infra
  • ll-formules
  • alc-intervenant-dmep
  • ll-suppr-v_vol-s
  • b20
  • ll-postgresql
  • b23.0.1
  • b22
  • 24.8
  • 24.7
  • 24.6
  • 24.5
  • 24.4
  • 24.3
  • 24.2
  • 24.1
  • 24.0
  • 23.15
  • 24.0-beta19
  • 24.0-beta18
  • 24.0-beta17
  • 24.0-beta16
  • 24.0-beta15
  • 24.0-beta14
  • 24.0-beta13
  • 23.14
  • 24.0-beta12
  • 24.0-beta11
41 results

DdlGen.php

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    DdlGen.php 11.47 KiB
    <?php
    
    namespace GenDbStructure;
    
    use Doctrine\ORM\EntityManager;
    use UnicaenApp\Service\EntityManagerAwareTrait;
    
    class DdlGen
    {
        const SEQUENCES       = 'Séquences';
        const TABLES          = 'Tables';
        const PACKAGES        = 'Packages';
        const VIEWS           = 'Vues';
        const MVIEWS          = 'Vues matérialisées';
        const PACKAGES_BODIES = 'Packages Bodies';
        const CONSTRAINTS     = 'Clés étrangères';
        const INDEXES         = 'Indexs';
        const TRIGGERS        = 'Triggers';
        const JOBS            = 'Jobs';
    
        use EntityManagerAwareTrait;
    
        /**
         * @var array
         */
        private $ddlQueries = [];
    
        /**
         * @var array
         */
        private $ddl    = [];
    
        private $tables = [];
    
    
    
        public function __construct(EntityManager $em)
        {
            $this->setEntityManager($em);
        }
    
    
    
        protected function init()
        {
            $sql = "
            BEGIN
                DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM, 'EMIT_SCHEMA',        false);
                DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM, 'SQLTERMINATOR',      true );
                DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM, 'PRETTY',             true );
                DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM, 'SEGMENT_ATTRIBUTES', false);
                DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM, 'REF_CONSTRAINTS',    false);
                DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM, 'STORAGE',            false);
            END;";
    
            $this->getEntityManager()->getConnection()->executeQuery($sql);
    
            return $this;
        }
    
    
    
        private function getDdlQueries()
        {
            if (empty($this->ddlQueries)) {
                $this->makeDdlQueries();
            }
    
            return $this->ddlQueries;
        }