Ir para o conteúdo

 Voltar a i-Educar De...
Tela cheia

Migração do Banco de Dados

25 de Novembro de 2010, 10:24 , por Desconhecido - | 1 Pessoa seguindo este artigo.
Visualizado 27 vezes

olá, estou tentando fazer a migração do banco de dados para a versão do repositório que está no github, porém estou encontrando um problema na hora de executar o phing na hora do migrate ele da o seguinte erro:

Execution of target "migrate" failed for the following reason: /var/www/misc/build.xml:142:16:  [wrapped: pgsql is not supported by dbdeploy task.]

BUILD FAILED
/var/www/misc/build.xml:142:16:  [wrapped: pgsql is not supported by dbdeploy task.]
Total time: 0.2560 seconds
 

 fiz uma busca no google porém não achei nada relacionado.. fiz a instalação do phing conforme o manual.. não sei qual a razão dele não ta suportando o pgsql pelo o dbdeploy.. se alguem tiver alguma luz.. desde já agradeço

 

Autor: Eduardo Junior


55 comentários

  • 8f1f08500dbcc492cf400db0cda8edef?only path=false&size=50&d=404Marcelo Gomes(usuário não autenticado)
    29 de Novembro de 2010, 14:19

     

    Eduardo, Tenho o entender que o erro, se que, você tem cadastro no portal onde e hospedado o SVN, ou o login e senha estão corretos no arquivo .../misc/build.xml. Atenciosamente,Marcelo GomesE-Mail: mti6@live.itProjeto i-Educar, Desenvolvimento e AjudasPortal do Soft S.A.

    • 1d7b849d453c9b29f14d92a14f66f17d?only path=false&size=50&d=404Eduardo Junior(usuário não autenticado)
      30 de Novembro de 2010, 10:23

       

      Olá Marcelo, andei pesquisando pra ver se conseguia entender o erro... olha baixei a versão do build direto do git hub do ieducar.. que é a versão svn.. 

      a parte que ta o erro é essa

        <dbdeploy
            url="pgsql:host=${project.conf.dbdeploy.hostname};dbname=${project.conf.dbdeploy.dbname}"
            userid="${project.conf.dbdeploy.username}"
            password="${project.conf.dbdeploy.password}"
            dir="${project.conf.curdir}/misc/database/deltas"
            outputfile="${project.conf.builddir}/${project.conf.dbdeploy.deployfile}"
            undooutputfile="${project.conf.builddir}/${project.conf.dbdeploy.undofile}" />

      *pgsql is not supported by dbdeploy task

       ta dizendo que o dbdeploy instalado pelo o phing não suporta o pgsql da forma que ta nessa comando. dando um ls no diretorio onde está o dbdeploy

       root@infocentro-desktop:/usr/share/php/phing/tasks/ext/dbdeploy# ls
      DbDeployTask.php  DbmsSyntaxFactory.php  DbmsSyntaxMsSql.php  DbmsSyntaxMysql.php  DbmsSyntax.php  DbmsSyntaxSQLite.php

      Estranho não ter a classe DbmsSyntaxPGSQL.php por exemplo, já desisntalei e instalei o phing e nada de vim a tal classe.. olhei a documentação dele e achei isso:

      PDOSQLExecTask

      The PDOSQLExecTask executes SQL statements using PDO.

      Examples

      <pdosqlexec url="pgsql:host=localhost dbname=test">
      <fileset dir="sqlfiles">
      <include name="*.sql"/>
      </fileset>
      </pdosqlexec>

      uma forma totalmente diferente de usar o pgsql com o phing. ai usa o pdosqlexec e não o dbdeploy

      Do jeito que ta no build.xml não achei referências sobre o comando da forma que está lá quando é pra ser usando com o pgsql, só acho sobre sqlite e mysql.

      a minha dúvida é por que funcionou com vocês e não comigo.. já que segui os mesmos passos..

      tentei instalar o dbdeploy sem usar o phing baixando do sourceforge pear​dbde​ploy​.sou​rcef​orge​.net​/doc​s/

       nele vem o arquivo com a classe pro pgsql porem não consegui fazer funcionar ainda..

      • 1d7b849d453c9b29f14d92a14f66f17d?only path=false&size=50&d=404Eduardo Junior(usuário não autenticado)
        30 de Novembro de 2010, 10:56

         

        opa consegui resolver, vou explicar como abaixo:

        Criei o arquivo chamado DbmsSyntaxPgSql.php no diretorio /usr/share/php/phing/tasks/ext/dbdeploy 

        com o seguinte contéudo:

        <?php
        class DbmsSyntaxPgsql extends DbmsSyntax
        {
            public function generateTimestamp()
            {
                return "current_timestamp";
            }

        }
        ?>
        depois editei o arquivo /usr/share/php/phing/tasks/ext/dbdeploy/DbmsSyntaxFactory.php e alterei a seguinte função:

            public function getDbmsSyntax()
            {
                switch ($this->dbms){
                    case('sqlite') :
                        require_once 'phing/tasks/ext/dbdeploy/DbmsSyntaxSQLite.php';
                        return new DbmsSyntaxSQLite();
                    case('mysql'):
                        require_once 'phing/tasks/ext/dbdeploy/DbmsSyntaxMysql.php';
                        return new DbmsSyntaxMysql();
                    case('mssql'):
                        require_once 'phing/tasks/ext/dbdeploy/DbmsSyntaxMsSql.php';
                        return new DbmsSyntaxMsSql();
                    default:
                        throw new Exception($this->dbms . ' is not supported by dbdeploy task.');
                }
            }

        acrescentando a seguinte linha            

        case('pgsql'):
        require_once 'phing/tasks/ext/dbdeploy/DbmsSyntaxPgSql.php';
        return new DbmsSyntaxPgsql();

        ficando assim:

          public function getDbmsSyntax()
            {
                switch ($this->dbms){
                    case('sqlite') :
                        require_once 'phing/tasks/ext/dbdeploy/DbmsSyntaxSQLite.php';
                        return new DbmsSyntaxSQLite();
                    case('mysql'):
                        require_once 'phing/tasks/ext/dbdeploy/DbmsSyntaxMysql.php';
                        return new DbmsSyntaxMysql();
                    case('mssql'):
                        require_once 'phing/tasks/ext/dbdeploy/DbmsSyntaxMsSql.php';
                        return new DbmsSyntaxMsSql();
                    case('pgsql'):
                        require_once 'phing/tasks/ext/dbdeploy/DbmsSyntaxPgSql.php';
                        return new DbmsSyntaxPgsql();
                    default:
                        throw new Exception($this->dbms . ' is not supported by dbdeploy task.');
                }
            }

        depois rodei o comando phing -f build.xml migrate e ele fez o trabalho de boa.. bom fica ai a dica pra quem passar pelo o mesmo que eu passei

        • 8f1f08500dbcc492cf400db0cda8edef?only path=false&size=50&d=404Marcelo Gomes(usuário não autenticado)
          1 de Dezembro de 2010, 0:44

           

          Eduardo, Boa, poderia estar vinculando sua dica a uma página na wiki da comunidade. Atenciosamente,
          Marcelo GomesE-Mail: mti6@live.itProjeto i-Educar, Desenvolvimento e AjudasPortal do Soft S.A.

Mapeamento do i-Educar por todo o Brasil

23 de Abril de 2018, 16:31, por Tiago Giusti

A Portabilis, organização que é integrante da comunidade desde 2009 e que atua no papel de mantenedora do projeto, propôs uma renovação de energias, ao final de 2017, para levar o i-Educar ainda mais longe.



Situação atual do lançamento do maior software livre de gestão escolar do Brasil

10 de Abril de 2018, 11:29, por Tiago Giusti

O Coordenador da Comunidade i-Educar e CEO da Portabilis, Tiago Giusti, foi a Brasília, no fim do ano passado, representando a Comunidade i-Educar numa visita ao Ministério do Planejamento para discutir soluções para alguns assuntos de interesse da Comunidade, tais como:



Em 2018, queremos o i-Educar por todo o Brasil

28 de Dezembro de 2017, 23:08, por Tiago Giusti

Esta mensagem é diferente das de retrospectiva dos anos anteriores. Vamos abordar primeiro sobre o futuro, encerrando com um resumo de como foi 2017.



Prefeitura de Criciúma implanta o i-Educar na rede municipal de ensino

20 de Dezembro de 2017, 11:04, por Tiago Giusti

Buscando melhorar o sistema de informações da rede municipal de ensino de Criciúma, a Administração Municipal, através da Secretaria de Educação e da Diretoria de Tecnologia da Informação (TI), implantará um software de gestão de dados nas unidades educacionais. Denominado i-Educar, o sistema aperfeiçoará o armazenamento de dados e auxiliará gestores e professores de Criciúma.



Retrospectiva i-Educar 2016: o que conseguimos realizar?

31 de Dezembro de 2016, 12:00, por Tiago Giusti

Chegamos a mais um 31/12 e é hora de fazermos a retrospectiva da Comunidade i-Educar, como temos feito todos os finais de ano.