From 45a79c76587a956b89bced2bf5ccdaf72adfee4e Mon Sep 17 00:00:00 2001 From: Felipe Nascimento de Moura Date: Sun, 5 Jun 2011 21:51:56 -0300 Subject: [PATCH] fixed foreign keys problem; fixed bug for new projects; changes to sql generator; --- mind3rd/API/Lobe/db/db.php | 6 ++-- mind3rd/API/Lobe/db/resources/DBDealer.php | 6 ++-- mind3rd/API/Lobe/sql/sql.php | 7 ++++- mind3rd/API/external/pug | 1 - mind3rd/API/programs/Quit.php | 2 +- mind3rd/API/programs/SetUse.php | 9 +----- mind3rd/API/programs/Show.php | 32 ++++++++++++++++------ 7 files changed, 37 insertions(+), 26 deletions(-) delete mode 160000 mind3rd/API/external/pug diff --git a/mind3rd/API/Lobe/db/db.php b/mind3rd/API/Lobe/db/db.php index a5f11ed..c0beace 100755 --- a/mind3rd/API/Lobe/db/db.php +++ b/mind3rd/API/Lobe/db/db.php @@ -43,14 +43,14 @@ class db extends \Lobe\Neuron implements \neuron{ \DQB\QueryFactory::setUp($ar['driver']); \DQB\QueryFactory::buildQuery(); $qrs= \DQB\QueryFactory::getCompleteQuery(false, true, 'array'); - $qrs= \DQB\QueryFactory::buildRawQuery(); + //$qrs= \DQB\QueryFactory::buildRawQuery(); $this->dbal->begin(); $dealer= new resources\DBDealer($this->dbal); - foreach($qrs['createTable'] as $tbName=>$qrObject) + foreach($qrs as $tbName=>$qr) { - if(!$dealer->createTable($qrObject)) + if(!$dealer->createTable($qr)) { return false; } diff --git a/mind3rd/API/Lobe/db/resources/DBDealer.php b/mind3rd/API/Lobe/db/resources/DBDealer.php index f0b4188..0df5fb3 100755 --- a/mind3rd/API/Lobe/db/resources/DBDealer.php +++ b/mind3rd/API/Lobe/db/resources/DBDealer.php @@ -22,7 +22,7 @@ class DBDealer { private $dbal; private $curEntities; - public function createTable($queryData) + public function createTable($query) { $prjDao= new \DAO\Project(); @@ -36,7 +36,7 @@ class DBDealer { } - $exec = $this->dbal->execute($queryData->query); + $exec = $this->dbal->execute($query); /*if(\DQB\QueryFactory::tableExists($queryData->table['name'])) { @@ -45,7 +45,7 @@ class DBDealer { if($exec === false) { \Mind::write('theosDBQrFail'); - echo $queryData->query."\n"; + echo $query."\n"; echo $this->dbal->getErrorMessage(); \Mind::write('theosDBQrFailAbort'); return false; diff --git a/mind3rd/API/Lobe/sql/sql.php b/mind3rd/API/Lobe/sql/sql.php index b9692c9..bf8e897 100755 --- a/mind3rd/API/Lobe/sql/sql.php +++ b/mind3rd/API/Lobe/sql/sql.php @@ -21,6 +21,11 @@ class sql extends \Lobe\Neuron implements \neuron{ public function __construct(Array $data) { - return \API\FileManager::writeToFile('docs/create.sql', \API\Get::DDL()); + if(\API\FileManager::writeToFile('docs/create.sql', \API\Get::DDL())) + { + echo ".sql file created in docs dir for the current project, with all the DDL commands"; + return true; + } + return false; } } \ No newline at end of file diff --git a/mind3rd/API/external/pug b/mind3rd/API/external/pug deleted file mode 160000 index 6f9d380..0000000 --- a/mind3rd/API/external/pug +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 6f9d380f9e9a44651a6453d12540b86fd2833f07 diff --git a/mind3rd/API/programs/Quit.php b/mind3rd/API/programs/Quit.php index 10463a3..f3b630e 100755 --- a/mind3rd/API/programs/Quit.php +++ b/mind3rd/API/programs/Quit.php @@ -19,7 +19,7 @@ ->setRestrict(false) ->setFileName('Quit') ->setHelp(<<init(); diff --git a/mind3rd/API/programs/SetUse.php b/mind3rd/API/programs/SetUse.php index ea9f9e5..281f93c 100755 --- a/mind3rd/API/programs/SetUse.php +++ b/mind3rd/API/programs/SetUse.php @@ -32,15 +32,8 @@ EOT ); - $projectsList= \API\Project::projectList(); - foreach($projectsList as $k=>$p) - { - $projectsList[$k]= $p['name']; - } - $this->addRequiredArgument('projectName', - 'Specify the project name, you want to use/open', - $projectsList); + 'Specify the project name, you want to use/open'); $this->init(); } diff --git a/mind3rd/API/programs/Show.php b/mind3rd/API/programs/Show.php index a01f224..e3770ec 100755 --- a/mind3rd/API/programs/Show.php +++ b/mind3rd/API/programs/Show.php @@ -25,18 +25,22 @@ EOT ); + $opts= Array( 'projects', + 'users', + 'entities', + 'relations', + 'version', + 'idioms', + 'plugins', + 'ddl', + 'info', + 'lobes'); + asort($opts); $this->addRequiredArgument('what', 'What to show', - Array( 'projects', - 'users', - 'entities', - 'relations', - 'version', - 'idioms', - 'plugins', - 'lobes')); + $opts); $this->addOptionalArgument('extra', 'Any extra information to be used'); - $this->addFlag('detailed', '-d', 'Show detailed data'); + $this->addFlag('detailed', '-d', 'Show detailed data(or set scripts as decorated)'); $this->init(); } @@ -45,6 +49,7 @@ EOT { GLOBAL $_REQ; GLOBAL $_MIND; + switch($this->what) { case 'projects': @@ -148,9 +153,18 @@ EOT case 'idioms': Mind::getIdiomsList(); break; + case 'ddl': + $ddls= $this->detailed? \API\Get::DecoratedDDL(): + \API\Get::DDL(); + foreach($ddls as $ddlCommand) + echo $ddlCommand; + break; case 'lobes': echo implode("\n", \Lobe\Neuron::listLobes()); echo "\n"; + break; + case 'info': + print_r(\API\Project::data()); break; default: Mind::write('invalidOption', true, $this->what);