Migrations para CakePHP

13 views
Skip to first unread message

Juan Basso

unread,
Feb 28, 2009, 3:16:29 PM2/28/09
to CakePHP Tuga
Pessoal,

Na discussão sobre o Akelos aqui no groups [1], vimos que ele conta o
sistema de Migrations, surgido lá o Ruby on Rails. Com isso, eu e o
João pensamos em fazer a mesma coisa pro CakePHP, na forma de um shell/
console.
O João escreveu no blog [2] dele um post explicando o que é
migrations, utilização prática e também convidando os interessados a
participarem conosco. Reforço aqui o convite de quem queira
participar, só entrar em contato.
Caso queiram ver outros projetos similares que achamos até agora, tem
no site do João também [2].

Aproveito esta thread para pedir sugestão dos participantes, que digão
quais os maiores problemas relacionados ao sincronismo do esquema do
banco de dados quando trabalhando em equipes ou até mesmo em versões
novas do projeto... Fiquem a vontade, qualquer critica é bem vinda!

E caso queiram acompanhar os desenvolvimentos, colocamos o código a
disposição no GitHub [3].


[1] http://groups.google.com/group/cakephp-pt/browse_thread/thread/647eb389526c2a5b/91b5754c6f706fdc
[2] http://kiss.souagil.com.br/2009/02/migrations-uma-breve-explicacao/
[3] http://github.com/joaojose/migrations/tree/master


Juan Basso

Juan Basso

unread,
Feb 28, 2009, 4:53:14 PM2/28/09
to CakePHP Tuga
Para completar, criar uma página na wiki do projeto com as notas de
desenvolvimento, com o que pretendemos fazer:
http://wiki.github.com/joaojose/migrations/notas-de-desenvolvimento


Juan Basso

On 28 fev, 17:16, Juan Basso <jrba...@gmail.com> wrote:
> Pessoal,
>
> Na discussão sobre o Akelos aqui no groups [1], vimos que ele conta o
> sistema de Migrations, surgido lá o Ruby on Rails. Com isso, eu e o
> João pensamos em fazer a mesma coisa pro CakePHP, na forma de um shell/
> console.
> O João escreveu no blog [2] dele um post explicando o que é
> migrations, utilização prática e também convidando os interessados a
> participarem conosco. Reforço aqui o convite de quem queira
> participar, só entrar em contato.
> Caso queiram ver outros projetos similares que achamos até agora, tem
> no site do João também [2].
>
> Aproveito esta thread para pedir sugestão dos participantes, que digão
> quais os maiores problemas relacionados ao sincronismo do esquema do
> banco de dados quando trabalhando em equipes ou até mesmo em versões
> novas do projeto... Fiquem a vontade, qualquer critica é bem vinda!
>
> E caso queiram acompanhar os desenvolvimentos, colocamos o código a
> disposição no GitHub [3].
>
> [1]http://groups.google.com/group/cakephp-pt/browse_thread/thread/647eb3...

Caio Gondim

unread,
Mar 2, 2009, 9:59:20 PM3/2/09
to cakep...@googlegroups.com
E ae Juan, 

So pra avisar a galera que j'a existe um projeto nesse sentido.


Eu pessoalmente nao usei ainda, mas li sobre na epoca e parece atender as necessidades.

Vale a pena dar um fork no projeto e comecar o desenvolvimento.

Abracos

2009/2/28 Juan Basso <jrb...@gmail.com>

Juan Basso

unread,
Mar 2, 2009, 10:28:22 PM3/2/09
to CakePHP Tuga
Caio,

Obrigado pela informação, mas já tinhamos visto este projeto, porém
ele não é muito "Cake Style". Ele usa arquivos yuml (está sentindo o
cheiro do ruby?). Além disso, usa algumas bibliotecas do PEAR,
precisando que você baixe para que ele funcione, enquanto o Cake já
tem todo esse serviço internamente...
Achamos outros projetos também. Eles estão na página de entrada da
wiki no projeto. Não explicamos qual o nosso diferencial, mas quem
sabe mais pra frente possamos fazer isto.

Uma coisa que temos em mente é criarmos uma classe PHP para as
migrações, deixando você inserir até registros numa tabela nova (no
modo cake, com ->create(), ->save()). Também vai poder fazer algumas
outras customizações, ou avisos, ou qualquer coisa que você deseja e
que dê para fazer em PHP. Se você olhar nas notas de desenvolvimento
na wiki do projeto que abrimos, vai ver como seria o arquivo que
precisaria ser criado, dando uma boa flexibilidade de desenvolvimento
e automatização.

Se você der uma espiadinha no nosso código, dá para ver que a classe
Shell está praticamente pronta (ainda faltam os testes de integração e
melhorar a saída (mensagens)) e na classe de comandos já estão criados
os comandos de criação e exclusão de tabelas (a propósito, estão
fresquinhos, acabei de "commitar"/"pushar"). Já é possível começar a
brincar com o script. Os outros comandos serão um tapa para fazer,
pois são muito similares ao create/drop.

Claro que estamos no começo, nosso código está brotando, não temos
testes automatizados e nem validação dos dados de entrada, mas o bolo
está sendo feito, o glacê fica pro final ou para outro
desenvolvedor...


Abraços,

Juan Basso


On 2 mar, 23:59, Caio Gondim <caio.gon...@gmail.com> wrote:
> E ae Juan,
> So pra avisar a galera que j'a existe um projeto nesse sentido.
>
> http://github.com/joelmoss/cakephp-db-migrations/tree/master
>
> Eu pessoalmente nao usei ainda, mas li sobre na epoca e parece atender as
> necessidades.
>
> Vale a pena dar um fork no projeto e comecar o desenvolvimento.
>
> Abracos
>
> 2009/2/28 Juan Basso <jrba...@gmail.com>

Caio Gondim

unread,
Mar 9, 2009, 7:11:41 PM3/9/09
to cakep...@googlegroups.com
Vou dar uma olhada no projeto. =D



2009/3/3 Juan Basso <jrb...@gmail.com>

Jansen

unread,
Mar 24, 2009, 9:38:33 AM3/24/09
to CakePHP Tuga
Olá a quantas anda este projeto?

abço

Jansen

On 9 mar, 20:11, Caio Gondim <caio.gon...@gmail.com> wrote:
> Vou dar uma olhada no projeto. =D
>
> 2009/3/3 Juan Basso <jrba...@gmail.com>

Juan Basso

unread,
Mar 24, 2009, 12:48:06 PM3/24/09
to CakePHP Tuga
Jansei e demais,

Eu e o João colocamos um gás no começo, fizemos bastante coisa, mas
não está 100% ainda, porém está funcional para o básico. Ontem estava
conversando com o João e vimos que umas coisas que tinhamos feito já
está pronta no Cake, então vamos acabar voltando as modificações...
mas isso é apenas funcional, não vai causar incompatibilidades.
Tive umas idéias ontem também, mas tenho que analisar a viabilidade
técnica antes de implementá-las. Basicamente seria fazer um método
para no down ele apagar os registros inseridos no up...

Bem, em resumo, o projeto está funcionando, sem muitos testes práticos
e documentação quase 0. Se você quiser, pode começar a utilizar e
vamos dando uma ajuda no que for necessário, nesse meio tempo já vamos
documentando.


Abraços,

Juan Basso

Jansen

unread,
Mar 24, 2009, 1:22:46 PM3/24/09
to CakePHP Tuga
Olá Juan!

Aonde eu baixo?
será que tem como eu sar para mssql?

abço

Jansen

Juan Basso

unread,
Mar 24, 2009, 1:46:02 PM3/24/09
to CakePHP Tuga
Você pode baixar de http://github.com/joaojose/migrations/tree/master

Este é o link do projeto, qualquer modificação será feita lá. Eu tenho
um fork do projeto, mas todos desenvolvimentos que faço eu informo ao
João e ele atualiza no dele também.

Quanto a usar para MSSql, acho que é possível sim. Nós utilizamos as
funções implementadas pelo CakePHP para o CakeSchema. Como o CakePHP
1.2 já é uma release, acredito que as funções já estejam testadas e
prontas para uso. Você só precisa configurar o core/database.php.


Juan Basso

Jansen Nunes

unread,
Mar 24, 2009, 3:48:46 PM3/24/09
to cakep...@googlegroups.com

Agora eu queria dar uma idéia.

Para quem quiser fazer, porque eu não tenho "bala na agulha" para tanto:

De criar testes "funcionais", para o Cake.

Por exemplo um teste que chame uma action index no controller e retorne o html dessa index.
Sem o uso de Mock.
É muita coisa pra não ter um resultado que você espera.
Se você muda a funcionalidade e não muda no Mock já era.

Eu acho muito importante, este lance de fazer testes.
Para mim fazer TDD em qualquer aplicação é tudo.
Só falta isso para ser um framework excelente em PHP.

abço


2009/3/24 Juan Basso <jrb...@gmail.com>

Rodrigo Moyle

unread,
Mar 24, 2009, 4:39:16 PM3/24/09
to cakep...@googlegroups.com
Jasen

O testsuite do Cake já tem essa funcionalidade, só dar uma lida no Book que você encontra


Da uma olhada na seção 4.7.6.2 The testAction Method

Abraço
Reply all
Reply to author
Forward
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
0 new messages