Estimados.
Se nos ha presentado un problema con una fuente de datos. Cynthya planteó uno que está intimamente relacionado, o que es consecuencia del que planteo aquí.
El problema que se le planteó a ella lo tuve que arreglar editando directamente el bases.ini en el parámetro de esquema por defecto.
Lo mismo tuve que hacer en dos tablas apex (apex_fuente_datos y apex_fuente_datos_schema).
A partir de allí quedó funcionando el sistema pero… no estoy satisfecho por lo siguiente:
Uds. saben que, al definir una fuente, en la solapa de esquemas se especifica uno por defecto y se pueden seleccionar de una lista de esquemas algunos que quedan relacionados con la fuente. Supongo que estos se seleccionan para poder crear datos_tabla a partir de las tablas que contienen y para que toba mantenga en que esquema se encuentran.
Ahora bien, cuando intento agregar otro esquema a una Fuente existente, se produce un error de integridad ya que intenta ejecutar una operación de DELETE y, por supuesto, dicha fuente está siendo utilizada por otros objeto. Después observo de que en el bases.ini blanquea el esquema que estaba allí especificado.
Esto me pasa con una sola fuente, las otras no tienen problema.
Adjunto el mensaje de error para orientar a los expertos y que me indiquen que debo mirar, ya que algo quedó mal por algún motivo que desconozco y me gustaría poder entender las causas para prevenirlas y/o sanearlas.
SQLSTATE[23503]: Foreign key violation: 7 ERROR: update or delete on table “apex_fuente_datos_schemas” violates foreign key constraint “apex_objeto_fk_fuente_schemas” on table “apex_objeto_db_registros” DETAIL: Key (proyecto,fuente_datos,nombre)=(expedientes,expedientes,expedientes) is still referenced from table “apex_objeto_db_registros”. Más info…
SQLSTATE: db_23503
CODIGO: 7
MENSAJE: SQLSTATE[23503]: Foreign key violation: 7 ERROR: update or delete on table “apex_fuente_datos_schemas” violates foreign key constraint “apex_objeto_fk_fuente_schemas” on table “apex_objeto_db_registros” DETAIL: Key (proyecto,fuente_datos,nombre)=(expedientes,expedientes,expedientes) is still referenced from table “apex_objeto_db_registros”.
SQL: DELETE FROM apex_fuente_datos_schemas WHERE proyecto = “expedientes” AND fuente_datos = “expedientes” AND nombre = “expedientes” AND principal = “0”;
Un cordial saludo.