Pergunta

Eu não estou muito familiarizado com bolo .. Então aqui vai minhas perguntas .. estamos desenvolvendo um aplicativo no mysql, mas pode, eventualmente, precisa implantar para MSSQL ou Oracle. Como podemos ter certeza de que não teremos problemas estranhos com nossas chaves primárias? Em mysql que são colunas de auto incremento, mas IIRC no Oracle você precisa seqüências de uso ... existe uma maneira de fazer isso uma mudança transparente? Am I pensando sobre isso?

Alguém tem experiência com troca de fornecedores de banco de dados em um aplicativo CakePHP? qualquer ponteiros ou coisas para manter um olho para fora para?

Foi útil?

Solução

No arquivo Bolo de configuração de banco de dados que você escolher o seu driver (consulte http: // livro .cakephp.org / view / 40 / banco de dados-Configuration ). Então, se você definir o seu PK (que também será sua coluna a_i se estiver usando MySQL) com o nome do campo id, Bolo processa automaticamente a inserção auto_increment. Eu presumo. (NB: Bolo não tentei w / outra coisa) que o bolo vai cuidar de colunas a_i em algo como a Oracle

Cake usa sua própria camada DB abstração -. Mas as abstrações incluídos cobrir um pouco, e ele irá executar conforme especificado (ou seja, ele vai lidar com seu material auto incremento para você)

Em suma, você provavelmente está pensando demais. Dito isto, gostaria de mock up de um pequeno aplicativo bolo, em seguida, tente mudar bases de dados por trás dele (mudar sua configuração db e sua aplicação deve automagicamente mudar).

HTH, Travis

Outras dicas

As seguintes práticas grande trabalho para me

Eu uso esquemas bolo (I tendem a configurar um arquivo de esquema para cada grupo de modelos. OU SEJA usuário, função perfil pode ser tudo em um arquivo UsersSchema)

Também dê uma olhada usando o debuggable.com FixturesShell - ele permite que você teste de importação de casos luminárias no banco de dados ao vivo. Grande para a criação desse grupo inicial de usuários e funções do arquivo de esquema.

Além disso, se você definir seu campo 'id' para VARCHAR (36) em vez de INT (#) Bolo irá automaticamente usar UUID estilo id do. Isto significa que tem uma chance FAR FAR inferior de seus dados com colisões valor id se você precisa mover os dados para outra aplicação ou servidor.

As luminárias shell também tem uma ferramenta de linha de comando para gerar UUIDs (assim você pode adicioná-los à sua variável $ registros no dispositivo para inserção etc.)

Em resumo - Use o CakeSchema esquemas shell, as luminárias desembolsar a partir de valores debuggable.com e UUID para o seu id de e deve dar-lhe uma ferramenta portátil criação estrutura, uma ferramenta de inserção de dados portátil, e um formato de campo id portátil <. / p>

http://github.com/felixge/debuggable -scraps / árvore / fd0e5ad625cb21f5ba16e6b186821a5774089ac7 / cakephp / shells / luminárias

http://api.cakephp.org/class/schema-shell

Você precisa estar usando "esquema de bolo" para gerir o seu DB .. Isto irá lidar com todo o material específico DB quando você cria seu banco de dados.

http://book.cakephp.org/view / 735 / geração de e-usando-schema-arquivos

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top