Select Git revision
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
DdlGen.php 9.43 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;
}