[SP-pm] Automatização de deployment - Criação do banco de dados

Ulisses Montenegro ulisses.montenegro at gmail.com
Thu Sep 13 13:18:57 PDT 2012


Daniel

Acho que agora está mais claro, eu havia entendido que você queria
algo para gerência de configuração do esquema do banco de dados. Se o
problema é só rodar um script para o banco, dá para fazer de forma bem
simples. A forma de fazer isso sem introduzir dependências extras no
seu software é utilizar a infraestrutura de acesso ao banco que o PHP
já oferece. Poderia ser algo tão simples quanto uma URL que não faz
parte do fluxo normal da aplicação, e que executa os queries no banco.
Por exemplo, no final do script de descompactação, após a configuração
do servidor, usuário e senha do banco, bastaria acessar uma URL como:

http://servidor/path/dbsetup.php

Nessa hora você executaria uma série de "CREATE TABLE IF NOT EXISTS
xxx (...)" (ou a sintaxe equivalente do banco que você utiliza). É
importante que você garanta que, caso esse código seja executado mais
de uma vez, ele não modifique o banco novamente ou remova tabelas ou
dados.

Agora, se você quer realmente uma solução para gerência de
configuração do esquema de banco, ou seja, algo que seja capaz de
atualizar o esquema do banco junto com uma nova versão do software, já
com dados armazenados, a coisa fica muito mais complicada. Para esses
cenários, aquelas soluções na linha do DBIx::Migrations são o caminho.

[]'s
Ulisses

2012/9/13 Márcio VItor de Matos <cromo.jml at gmail.com>:
> 2012/9/13 Daniel Vinciguerra <dan.vinciguerra at gmail.com>
>>
>> Obrigado Ulisses,
>>
>> Na verdade trata-se de um produto escrito em PHP e por isso o deploy parte
>> de um pacote que foi pre configurado e é "descompactado" no diretório de
>> destino.
>>
>> O proximo processo é criar o database, pegar um script SQL (ou algo
>> melhor) e executar no database que foi criado para construir as tabelas que
>> serão utilizadas pelo sistema.
>>
>> Esta parte de rodar um script SQL que não esta me cheirando muito bem e
>> por isso pedi informação ao pessoal pra saber se não tenho uma solução mais
>> elegante para isso.
>>
>
> Daniel,
>
> Não é possível usar o próprio MySQL com o mysqldump ou coisa do gênero
> ? Me parece uma solução mais prática e eficaz.
>
> Marcio Vitor
>
>
>> ((Vou dar uma olhada nas referencias que você me passou!))
>>
>>
>> Daniel Vinciguerra
>> Web Solutions Architect and Co-Owner at Bivee
>> http://github.com/dvinciguerra
>>
>>
>> 2012/9/13 Ulisses Montenegro <ulisses.montenegro at gmail.com>
>>>
>>> Daniel,
>>>
>>> Dá uma olhada aqui:
>>>
>>>
>>> http://stackoverflow.com/questions/511386/how-can-i-get-my-database-under-version-control-with-perl
>>>
>>> Minha experiência com o assunto foi utilizando Ruby on Rails, onde
>>> existe o ActiveRecord::Migration. Para Perl, tudo parece apontar para
>>> o DBIx::Migration, mas as opiniões sobre o mesmo são de que não ajuda
>>> tanto assim.
>>>
>>> O que você está utilizando para automação do deploy?
>>> ExtUtils::MakeMaker ou Module::Build?
>>>
>>> []'s
>>> Ulisses
>>>
>>> 2012/9/13 Daniel Vinciguerra <dan.vinciguerra at gmail.com>:
>>> > Bom dia senhores,
>>> >
>>> > Estou trabalhando em uma solução e gostaria e pedir ajuda dos mais
>>> > experientes neste assunto...
>>> > ... tratasse da automação do deployment de produto e preciso criar uma
>>> > rotina que execute um script de criação da base de dados em um banco
>>> > MySQL.
>>> >
>>> > Gostaria de saber se algum de vocês teve alguma experiência com esse
>>> > tipo de
>>> > implementação e principalmente a melhor forma que encontraram de
>>> > resolver.
>>> >
>>> > Estou trabalhando com o DBI "in natura" e a forma como estou fazendo
>>> > não
>>> > esta me parecendo muito "elegante".
>>> >
>>> > Alguma sugestão, relato de experiência pessoal ou material?
>>> >
>>> > Obrigado e grande abraço a todos,
>>> >
>>> > Daniel Vinciguerra
>>> > Web Solutions Architect and Co-Owner at Bivee
>>> > http://github.com/dvinciguerra
>>> >
>>> > =begin disclaimer
>>> >    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>> >  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>> >  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>> > =end disclaimer
>>> >
>>>
>>>
>>>
>>> --
>>> “If debugging is the process of removing software bugs, then
>>> programming must be the process of putting them in.” - Edsger Dijkstra
>>> =begin disclaimer
>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>> =end disclaimer
>>
>>
>>
>> =begin disclaimer
>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>> =end disclaimer
>>
>
>
>
> --
> Márcio Vitor de Matos
> =begin disclaimer
>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer



-- 
“If debugging is the process of removing software bugs, then
programming must be the process of putting them in.” - Edsger Dijkstra


More information about the SaoPaulo-pm mailing list