Extraindo metadata de um banco Firebird

Hoje precisei incluir no script de build de um projeto a extração automática de metadata do banco de dados de desenvolvimento. Normalmente eu realizo esse processo manualmente através do IBExpert e não me lembrava como fazer isso via linha de comando. Um pouco de pesquisa na documentação do Interbase 6 (que ainda é a maior documentação disponível para o Firebird, visto que este se originou a partir do IB6) e achei:

isql -extract -o [nome arquivo] [banco de dados]

Exemplo:

isql -extract -o metadata.sql banco.fdb

Onde metadata.sql é o arquivo que será gerado, e banco.fdb é meu banco Firebird supondo que ele está no diretório atual. Claro que a pasta bin do Firebird tem que estar no path, pois é lá que o isql se encontra.

Uma das utilidades deste recurso é por exemplo incluir no seu build a extração de metadata e atualização deste no controle de versão.

11 Comments

  • Daniel Wildt
    3/2/2005 - 09:33 | Permalink

    Show de bola Eric, estava precisando fazer isto agora mesmo! :-)
    Feed providencial!

    • Pimentaprogramador
      9/5/2011 - 14:10 | Permalink

      Show de bola!!! Obrigado!

  • Erick
    3/2/2005 - 09:36 | Permalink

    Que bom que foi útil! :)

  • Ronnei Peterson
    17/5/2005 - 21:18 | Permalink

    E ai Erick, você tem o manual da estrutura do Interbase, tipo como funciona os relacionamentos das tabelas de Sistema dele, para mim por exemplo extrair a ordem que as tabelas deveriam ser inseridas de uma base para outra para nao problema de chave estrangeira???

  • Erick
    17/5/2005 - 21:26 | Permalink

    Não tenho não, talvez vc encontre algo no site firebase.com.br.

  • 1/6/2005 - 08:05 | Permalink

    Erick, grato pela dica. Acabei de testar e funcionou legal. Mas como faço pra incluir as instruções de alimentação dos dados junto com a DDL?

  • Erick
    1/6/2005 - 12:31 | Permalink

    Boa pergunta, mas não sei. Dê uma pesquisada na documentação do IB6 Open Source, pois é a documentação mais detalhada existente “relacionada” ao Firebird.

  • Pingback: FIREBIRD PT » Blog Archive » Extraindo metadata de um banco Firebird

  • eDSON
    18/11/2008 - 08:46 | Permalink

    TEstei aqui e nao deu certo… ele criou o arquivo metadata.sql que ficou vazio e deu uma mensagem de erro statement Failed, SQLCODE = -902

    e seu a mensagem do nome e senha nao está definido.

  • Leandro Lustosa
    14/10/2009 - 09:11 | Permalink

    Bom dia.
    Seu artigo foi muito útil pra mim. Entretanto tive o mesmo problema do colega acima. Só para complementar, no fim do comando basta insetir -u [nome de usuário] -p[senha de acesso] que funciona. o comando completo ficaria assim:
    isql -extract -o [nome arquivo] [banco de dados] -u [nome de usuário] -p[senha de acesso]
    exemplo:
    isql -extract -o metadata.sql banco.fdb -u sysdba -p masterkey

    valew galera, abraço!

  • 5/7/2010 - 08:59 | Permalink

    Pessoal fiz dessa forma ai e realmente extrai só que encontrei um problema, eu extrair também pelo IBExpert e depois extrair da forma que tem aqui e tentei comparar os script pelo IBExpert para poder atualizar meu banco só com a diferença ai da erro o IBExpert não consegue ler o Script gerado pelo isql alguem sabe porque?

  • Leave a Reply

    Your email address will not be published. Required fields are marked *

    *

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>