Remplazo de tabla

Hola, tengo la necesidad de cambiar el tipo de una tabla. La tabla actual es del tipo sub-maestro y por cambios en la aplicación ahora requiero que esa tabla sea del tipo maestro.
Debido a que Velneo no la pone nada fácil para cambiar el tipo de tabla, pues lo “correcto” es hacer la tabla nueva y hacer la horrible tarea de migrar todo lo relacionado con la tabla anterior y más si esta tiene apuntadores
Al parecer hice lo que tenía que hacer, y “la aplicación funcionó”, bueno funcionó hasta que llegó el momento en que borré la tabla obsoleta… y ahí comenzó la pesadilla, la app dejó de cargar. Me salía el mensaje de que la app estaba bloqueda por el administrador, tanto el proyecto de aplicación como el de datos, desde del DevApp los desbloquee, bueno, hice todo lo del libro y seguía sin poder cargar la app:

2 2023-06-19T10:16:49 Error Error al iniciar la instancia de datos InstanciaCodigo: 87 InstanciaId: COM_IND_APP_COMP_IND_DAT_RECICLA_DAT InstanciaNombre: com_ind_app_comp_ind_dat_Recicla_dat ProyectoId: 6gh4gs8o.vcd ProyectoAlias: Recicla_dat ProyectoNombre: Recicla_dat
2 2023-06-19T10:16:49 Error Error al iniciar la instancia de datos InstanciaCodigo: 88 InstanciaId: COM_IND_APP_COMP_IND_DAT InstanciaNombre: com_ind_app_comp_ind_dat ProyectoId: 8z2cjlvm.vcd ProyectoAlias: comp_ind_dat ProyectoNombre: comp_ind_dat

0 2023-06-19T10:17:20 Reinicio SoluciónNombre: Compras_ind Usuario: velneo
1 2023-06-19T10:17:20 Reinicio Reinicio finalizado Error SoluciónNombre: Compras_ind Usuario: velneo
1 2023-06-19T10:17:20 Error vatp Error de administración al reiniciar solución: La instancia para el proyecto “8z2cjlvm.vcd” no se encuentra Usuario: velneo

Hice de todo y nunca pude hacer que la aplicación funcionara de nuevo.
La solución fue echar mano de un respaldo que tenía, pero obviamente perdí el trabajo desde ese último respaldo, que era precisamente todo el trabajo de “migrar” esa tabla.

No tengo una pregunta en concreto, sino que si alguien pasó por algo similar y pudiera compartir algunos tips de qué hacer y qué no hacer para sustituir tablas sería un gran apoyo ya que seguramente lo voy a tener que hacer de nuevo.

Hola Marco,
Lamento el desenlace de este caso. Pero al menos pudiste rescatar parte de los datos con la copia de respaldo.

Respecto a las tablas, en algún momento llegué a la conclusión de que es mejor que todas las tablas sean de tipo maestro, por lo que mis proyectos no tienen ninguna tabla del tipo submaestro.
También he tratado de evitar las tablas maestras arboladas. Tuve que haber leído algún manual o webinar donde recomendaban esto.

Respecto a la falla en cargar la instancia, a mi me pasó algo similar al actualizar un proyecto heredado que ahora incluía una tabla con el mismo nombre de una de las tablas de mi proyecto. Por lo que una recomendación sería definir una nomenclatura de tus tablas que sea difícil de encontrar en otro proyecto, y en este caso específico, no retomar el nombre de la tabla que estás intentando sustituir. Otra sugerencia sería no borrar tablas aunque queden en desuso.

Saludos,

Hola aguevara, sí, en alguna parte también leí lo mismo, que evitar en lo posible las tablas de sub-maestro. Sobre las arboladas, entiendo su concepto y su uso, pero en lo personal, mehh, siento que agregan más complejidad que beneficio a la larga. En lo personal creo que con las tablas de maestro e histórico son suficientes :sweat_smile:.
De las de sub-maestro, pues ya les agarré el modo de lo que hay que tener cuidado (precisamente de varias cosas que me sucedieron con esta tabla), pero al final, por diseño, necesito que la tabla ya no sea dependiente de la tabla maestra. Intentaré de nuevo sin renombrar la anterior y sobre todo sin eliminarla.
Muchas gracias por tu consejo. ¡Saludos!

Me ha tocado hacer eso y lo que hago es creo una nueva tabla de tipo maestro normal, hago un copiar y pegar de todos los campos y los índices al copiar y pegar va ha quedar repetido el campo y el índice ID como ID1 solo los elimino. Luego guardo la tabla,. elimino la tabla Sub-maestro y luego renombro la tabla nueva con el nombre de la que borre luego reinicio el servidor y listo. Hasta los momento no he tenido problemas con este método.

1 me gusta

Hola estisoft, en el mejor de los casos es así de sencillo, pero cuando es una tabla que ya tienes en varios procesos es donde se pone bueno, ya que hay que sustituir las referencias de la tabla anterior por los de la tabla nueva en todos los objetos habidos y por haber, y eso es una tarea ardua.

Eso es correcto. No es una tarea fácil. Me toco hacerlo en su momento pero te ahorras el proceso de migrar los datos de la tabla… Tenía varias tablas sub-maeetas y las pase a maestras y deje de usar las sub-maestras. Y se complica más si quieres hacerle una ficha de extensión. Me toco hacerle una ficha de extensión al proyecto de vversión y fue un lío pero lo logre. Hice un proyecto tomando como base vversión donde hago backup a todas las herencias en un solo proceso. Y luego con otro proceso los envío a los servidores y los reinicio.

1 me gusta