Pregunta

No estoy muy familiarizado con el pastel ... Entonces, estas son mis preguntas ... estamos desarrollando una aplicación en mysql, pero posiblemente deba implementarse en mssql u oracle. ¿Cómo nos aseguramos de que no tendremos problemas extraños con nuestras claves principales? En mysql, son columnas de INCREMENTO AUTOMÁTICO pero IIRC en oracle necesitas usar secuencias ... ¿hay alguna manera de hacer que esto sea un cambio transparente? ¿Lo estoy pensando demasiado?

¿Alguien tiene experiencia con el cambio de proveedores de bases de datos en una aplicación cakephp? ¿Alguna sugerencia o cosas para vigilar?

¿Fue útil?

Solución

En el archivo de configuración de la base de datos de Cake, elige tu controlador (consulta http: // book .cakephp.org / view / 40 / Database-Configuration ). Luego, si configuras tu PK (que también será tu columna A_I si usas MySQL) con el nombre de campo id , Cake manejará automáticamente la inserción de auto_increment. Supongo (NB: no he probado Cake con otra cosa) que Cake se ocupará de las columnas A_I en algo como Oracle.

Cake utiliza su propia capa de abstracción de base de datos, pero las abstracciones incluidas cubren un poco y se desempeñarán según lo especificado (es decir, se encargarán de las cosas de incremento automático para usted).

En resumen, es probable que estés pensando demasiado. Dicho esto, me burlaría de una pequeña aplicación de pastel, luego intentaría cambiar las bases de datos detrás de ella (cambia tu configuración de base de datos y tu aplicación debería cambiar automáticamente).

HTH, Travis

Otros consejos

Las siguientes prácticas funcionan muy bien para mí

Uso esquemas de torta (tiendo a configurar 1 archivo de esquema para cada grupo de modelos. I.E. Usuario, Función, Perfil podría estar en un solo archivo UsersSchema)

También eche un vistazo al uso de debuggable.com FixturesShell, que le permite importar dispositivos de prueba en la base de datos en vivo. Excelente para configurar ese grupo inicial de usuarios y roles desde el archivo de esquema.

Además, si configura su campo 'id' en VARCHAR (36) en lugar de INT (#), la torta usará automáticamente las ID de estilo UUID. Esto significa que tienes MUCHO MÁS posibilidades de que tus datos tengan colisiones de valores de ID si necesitas mover los datos a otra aplicación o servidor.

El shell de dispositivos también tiene una herramienta de línea de comandos para generar uuids (para que puedas agregarlos a tu variable $ records en el dispositivo para la inserción, etc.)

En resumen: use el shell de esquemas de CakeSchema, el shell de fixtures de debuggable.com y los valores UUID para sus ID y le proporcionará una herramienta de creación de estructura portátil, una herramienta de inserción de datos portátil y un formato de campo de ID portátil.

http://githpel/placpcplacplacplacplacplacpcplacpcpcplacpcpcp2 -scraps / tree / fd0e5ad625cb21f5ba16e6b186821a5774089ac7 / cakephp / shells / fixtures

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

Debes estar usando " esquema de torta " para administrar su base de datos ... Esto manejará todas las cosas específicas de la base de datos cuando cree su base de datos.

http://book.cakephp.org/view / 735 / Generar y usar archivos de esquema

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top