Domanda

Non ho molta familiarità con la torta .. Quindi ecco le mie domande .. stiamo sviluppando un'app su mysql, ma potrebbe essere necessario implementarla su mssql o oracle. Come possiamo assicurarci di non avere strani problemi con le nostre chiavi primarie? In mysql sono colonne di INCREMENTO AUTOMATICO ma in Oracle IIRC devi usare le sequenze ... c'è un modo per rendere questo cambiamento trasparente? Sto pensando troppo?

Qualcuno ha esperienza con il passaggio dei fornitori di database su un'app cakephp? suggerimenti o cose da tenere d'occhio?

È stato utile?

Soluzione

Nel file di configurazione del database Cake scegli il tuo driver (vedi http: // libro .cakephp.org / view / 40 / Database Configuration-). Quindi, se imposti il ??tuo PK (che sarà anche la tua colonna A_I se usi MySQL) con il nome campo id , Cake gestirà automaticamente l'inserimento di auto_increment. Suppongo (NB: non ho provato Cake con qualcos'altro) che Cake si occuperà delle colonne A_I in qualcosa come Oracle.

Cake utilizza il proprio livello di astrazione DB, ma le astrazioni incluse coprono un bel po ', e si comporterà come specificato (cioè gestirà le tue cose di incremento automatico per te).

In breve, probabilmente stai pensando troppo. Detto questo, vorrei prendere in giro una piccola app per torta, quindi provare a cambiare database dietro di essa (cambiare la configurazione del db e l'app dovrebbe passare automaticamente).

HTH, Travis

Altri suggerimenti

Le seguenti pratiche funzionano alla grande per me

Uso schemi di torta (tendo a impostare 1 file di schema per ciascun gruppo di modelli. Utente I.E., ruolo, profilo potrebbero essere tutti in un file UsersSchema)

Dai un'occhiata anche all'utilizzo di Debuggable.com FixturesShell: ti consente di importare i dispositivi di test case nel database live. Ottimo per impostare quel gruppo iniziale di utenti e ruoli dal file dello schema.

Inoltre, se imposti il ??tuo campo 'id' su VARCHAR (36) invece che sulla torta INT (#) userà automaticamente gli ID di stile UUID. Ciò significa che hai una FAR FAR più bassa possibilità che i tuoi dati abbiano collisioni di valori ID se devi spostare i dati in un'altra applicazione o server.

La shell fixture ha anche uno strumento da riga di comando per generare uuids (quindi puoi aggiungerli alla tua variabile $ records nella fixture per l'inserimento ecc.)

In breve: usa la shell di schemi CakeSchema, la shell di dispositivi da debuggable.com e i valori UUID per i tuoi ID e dovrebbe darti uno strumento di creazione di strutture portatile, uno strumento di inserimento dati portatile e un formato di campo ID portatile.

http://github.com/felix -scraps / albero / fd0e5ad625cb21f5ba16e6b186821a5774089ac7 / cakephp / shells / fixtures

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

Devi utilizzare " schema a torta " per gestire il tuo DB .. Questo gestirà tutte le cose specifiche del DB quando crei il tuo database.

http://book.cakephp.org/view / 735 / Generazione-e-con schema-file-

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top