En ciertas circunstancias, wp_options (u otra tabla) puede perder su índice de clave primaria.
La razón exacta de este problema no está completamente clara. Parece que puede ocurrir si la base de datos ha sido migrada manualmente de una base de datos a otra, o mediante un Plugin o herramienta que no cubrió todas las situaciones, como el uso de diferentes versiones de MySQL o tipos como InnoDB o MyISAM.
Para dejarlo claro: WP STAGING no es la causa de este error. Solo te ayudamos a detectarlo mostrando una advertencia destacada en tu panel de administración cuando ocurre:
Lo hacemos porque este error es crítico y muy insidioso. No lo notarás hasta que sea demasiado tarde para solucionarlo rápidamente. Cuanto más esperes para corregirlo, más difícil será resolverlo.
Esto se debe a que tu sitio web funcionará casi igual que antes, pero con diferencias internas.
Veamos un ejemplo rápido de por qué esto importa para la tabla wp_options:
La tabla wp_options tiene una columna llamada option_id. Este ID suele ser único y solo se puede asignar una vez a cada fila. El ID se incrementa automáticamente para cada fila de esta manera:
option_id | option_name
1 | option1
2 | option2
3 | option3
Si falta la clave primaria, el option_id ya no se incrementa y todas las nuevas filas recibirán el número option_id 0, así:
option_id | option_name
1 | option1
2 | option2
3 | option3
0 | option4
0 | option5
0 | option6
El problema aparece cuando intentas exportar e importar estas filas a otra base de datos. El option_id debe ser un número único, por lo que mostrará errores SQL como «No se puede insertar clave duplicada…» y detendrá la migración.
Como resultado, WP STAGING y cualquier otro Plugin de migración no pueden ejecutar la transferencia de datos de la base de datos a otra base de datos. Por ejemplo, el proceso de publicación del sitio de staging al sitio de producción fallará.
Esta captura muestra una tabla wp_options normal con la clave primaria establecida en la columna option_id:

Esta segunda captura muestra la tabla wp_options con la clave primaria faltante:

Nota: Necesitarás una herramienta de gestión de base de datos para este tutorial, por ejemplo «adminer» o phpMyAdmin.
Cambiar los option_id existentes
- Haz un Backup completo de tu base de datos y descárgalo.
- Modifica los valores de option_id para todos los IDs duplicados.
Te sugerimos obtener el número más grande que tengas en la columna option_id e ir incrementándolo uno a uno. Este screencast muestra cómo hacerlo:
Añadir el índice de clave primaria y modificar la tabla
- Abre phpMyAdmin o adminer y navega a la tabla wp_options.
- Haz clic en «modificar índices» como en esta captura:

- Luego establece «option_id» como clave primaria:

- Si obtienes el error «Duplicate entry ‘0’ for key PRIMARY», significa que aún tienes IDs duplicados en la tabla y no has cambiado todos:

- En ese caso, localiza los restantes e incrementa sus valores para que no haya más duplicados en la tabla. Luego repite el proceso para añadir la CLAVE PRIMARIA a la tabla.
Después de corregir la clave primaria faltante, estás listo para publicar el sitio de staging en el sitio de producción. Sin embargo, se recomienda hacer un Backup de la base de datos antes.