Cómo sincronizar tu entorno de desarrollo local con el de producción
John Turner
John Turner
Cuando tu entorno de desarrollo local no coincide con tu servidor de producción, básicamente estás programando a ciegas.
Podrías pensar que todo funciona. Probablemente funcione... en tu máquina. Pero eso no es lo que importa.
Contar con un proceso fiable para sincronizar el desarrollo local con la producción no es solo algo deseable. Es lo que diferencia a los profesionales de las personas que cruzan los dedos cada vez que realizan una implementación.
En esta publicación, te mostraré métodos probados para mantener tus entornos sincronizados. ¡Encontrarás uno que se adapte a tu flujo de trabajo!
He aquí las principales conclusiones:
- La sincronización de entornos elimina los problemas de compatibilidad y detecta los errores antes de que los usuarios los vean.
- Puedes utilizar Duplicator para un flujo de trabajo de sincronización local apto para principiantes o GitHub + WP-CLI para el control de la línea de comandos.
- Siempre extraiga la base de datos de la producción y envíe solo los cambios de código para evitar sobrescribir los datos activos.
- Los sitios de WordPress tienen tres partes que sincronizar: código (Git), base de datos (WP-CLI) y archivos multimedia (rsync).
- Realiza siempre una copia de seguridad antes de sincronizar cualquier cosa, utiliza entornos de prueba para realizar comprobaciones y mantén un archivo .gitignore adecuado.
Índice
¿Por qué sincronizar sus entornos locales y de producción?
Probablemente podrías sobrevivir sin sincronizar entornos. Mucha gente lo hace. Simplemente se enfrentan a algún que otro error inesperado, a problemas de producción aleatorios que no se producen a nivel local y a la incertidumbre molesta cada vez que lanzan una actualización.
¿Pero por qué someterse a eso?
Mantener sincronizados tus entornos locales y de producción elimina un montón de problemas. Esto es lo que realmente consigues al hacerlo bien.
Detecta los errores antes de que se publiquen
Un entorno local sincronizado refleja la configuración real de tu servidor de producción. Tendrá la misma versión de PHP, estructura de base de datos y complementos en las mismas versiones.
Esto es más importante de lo que podrías pensar.
Cuando trabajas en una configuración local que coincide con la producción, los problemas de compatibilidad surgen inmediatamente. Los detectas en tu escritorio, no delante de los usuarios. Esa es la diferencia entre un pequeño inconveniente y un problema real.
Un entorno de pruebas realista
Las pruebas con datos ficticios están bien para crear las características iniciales. Pero, en algún momento, hay que ver cómo se comportan realmente las cosas.
El contenido real de los usuarios es desordenado. Los catálogos de productos tienen casos extremos extraños.
Tu sitio local necesita esos datos reales para ofrecerte una imagen precisa de lo que está sucediendo.
La sincronización desde la producción te proporciona las publicaciones, los usuarios y los productos reales con los que interactuará tu código. Ya no tienes que hacer conjeturas, sino que realizas pruebas basadas en la realidad.
Sin problemas de compatibilidad
Todos los desarrolladores han dicho al menos una vez «Pero en mi ordenador funcionaba». A estas alturas, es prácticamente un meme.
Pero también es un síntoma de entornos que no coinciden. Cuando tu configuración local es básicamente idéntica a la de producción, esta excusa desaparece. Si funciona localmente, funciona en vivo.
Ese tipo de confianza cambia tu forma de trabajar. Dejas de cuestionarte cada implementación.
Mejorar la colaboración en equipo
Cuando trabajas solo, puedes permitirte un proceso desordenado. Añade un segundo desarrollador a la ecuación y las cosas se complican rápidamente.
Un proceso de sincronización coherente significa que todos parten de la misma base. Todos realizan pruebas con la misma base de datos, utilizan la misma estructura de contenido y ejecutan la misma configuración de entorno.
Sin eso, acabas teniendo tres versiones diferentes de «local» y nadie sabe con certeza cuál es la más cercana a la producción. Eso no es colaboración, es caos.
Cómo sincronizar tu entorno local con el de producción
Podría hacerlo manualmente. Exporte la base de datos a través de phpMyAdmin, descárguela, impórtela localmente y busque y reemplace manualmente todas las URL en el archivo SQL. A continuación, acceda a su servidor mediante FTP, comprima la carpeta de cargas, descárguela, extráigala localmente...
Me agota solo escribirlo.
Los métodos manuales son tediosos y arriesgados. Si se olvida un reemplazo de URL, su sitio local comenzará a apuntar a recursos de producción. Si se olvida de actualizar correctamente una matriz serializada, habrá dañado su base de datos.
Hay una forma mejor. A continuación te explicamos cómo sincronizar tus entornos locales de desarrollo y producción:
- Duplicator: complemento de migración con sustitución automática de URL e instaladores guiados, perfecto para principiantes o sincronizaciones rápidas.
- GitHub + WP-CLI: Control por línea de comandos para sincronizar código a través de Git, bases de datos a través de exportaciones WP-CLI y medios a través de rsync, ideal para desarrolladores que desean un control granular.
Sincroniza sitios locales y de producción con Duplicator
Este es el método más sencillo, especialmente si no te sientes cómodo viviendo en la terminal.
Duplicator crea una instantánea completa de tu sitio y te proporciona un instalador que se encarga automáticamente de todas las partes complicadas. No tendrás que preocuparte por sustituir manualmente las URL ni por los quebraderos de cabeza que supone la configuración de la base de datos.

Traslado de producción a local (flujo de trabajo habitual)
Esto es lo que harás con más frecuencia. Quieres capturar el estado actual de tu sitio web en vivo y trabajar con él localmente.
Comience por instalar Duplicator Pro en su sitio de producción y cree una nueva copia de seguridad completa del sitio. Considérelo como una instantánea de todo su sitio en este preciso momento.

La creación de la copia de seguridad tarda unos minutos, dependiendo del tamaño de tu sitio web. Una vez finalizada, tendrás dos archivos: un archivo comprimido (normalmente un archivo .daf o .zip) y un script de instalación (un archivo .php). Descarga ambos.

Ahora vaya a su entorno local. Cree un directorio vacío donde desee guardar su copia local. Coloque ambos archivos (el archivo comprimido y el instalador) en ese directorio vacío.

Abre tu navegador y navega hasta ese directorio. Algo así como http://localhost/mysite/installer.php. Se iniciará el asistente de instalación de Duplicator.

El asistente le guía a través del proceso de conexión a su base de datos local y se encarga automáticamente de todas las sustituciones de URL.
Sabe que tu sitio de producción estaba en https://mysite.com y que tu sitio local está en http://localhost/mysite. Corrige todas las referencias en la base de datos sin que tengas que hacer nada.
Cinco minutos después, tendrás una copia local perfecta de tu sitio de producción.
Pasar de local a producción
Este flujo de trabajo va en la dirección opuesta. Se toma el sitio local y se implementa en producción.
Ten cuidado con esto. En realidad, solo sirve para lanzamientos de sitios nuevos o rediseños completos. Si tienes un sitio activo con usuarios activos, probablemente no te convenga hacerlo. Sobrescribirás sus publicaciones, comentarios y pedidos recientes.
Si necesitas pasar de local a producción, el proceso es similar, pero a la inversa.
En primer lugar, y no puedo insistir lo suficiente en ello, haz una copia de seguridad completa de tu sitio de producción antes de hacer nada más.
A continuación, cree una copia de seguridad de su sitio local utilizando Duplicator y descárguela. Suba ambos archivos de copia de seguridad a su servidor de producción a través de FTP o arrastre y suelte el archivo comprimido en la página Importar.

Una vez más: solo haz esto si estás seguro de que deseas reemplazar completamente la producción. Para asegurarte de que puedes revertir fácilmente cualquier cambio inesperado, asegúrate de establecer un punto de recuperación.

Duplicator te proporcionará una URL de recuperación que restaurará una copia de seguridad reciente, incluso si tu sitio web está completamente dañado.
Sincroniza sitios locales y de producción con GitHub y WP-CLI
Si te sientes cómodo con la línea de comandos, este método te ofrece más control y se adapta a un flujo de trabajo basado en Git.
Esto es lo que pasa con los sitios de WordPress: están compuestos por tres partes distintas que deben sincronizarse por separado.
- Código: tus archivos de tema, plugins y archivos principales de WordPress. Esto es lo que maneja Git.
- Base de datos: todo tu contenido, ajustes y configuraciones. Git no toca esto. Necesitas WP-CLI.
- Medios: todo lo que hay en tu carpeta /wp-content/uploads/. Tampoco está en Git. Necesitas rsync o una herramienta similar.
Entender esta separación es clave. Git por sí solo no es suficiente.
El flujo de trabajo para extraer datos de producción
Veamos cómo trasladar tu sitio de producción a un ámbito local.
En cuanto al código, es muy sencillo. Si tu tema y tus plugins personalizados están en un repositorio Git, solo tienes que ejecutar:
git pull origin main
Tu código local ahora coincide con la producción.
Para la base de datos, acceda a su servidor de producción mediante SSH y exporte la base de datos utilizando WP-CLI:
wp db export production-backup.sql
Descargue ese archivo .sql en su equipo local. A continuación, impórtelo localmente:
wp db import production-backup.sql
Pero aún no has terminado. Tu base de datos todavía contiene todas las URL de producción. Debes sustituirlas por tus URL locales:
wp search-replace 'https://mysite.com' 'http://localhost/mysite'
Este comando de búsqueda y sustitución busca en todas las tablas y campos, actualizando las URL dondequiera que aparezcan. Incluso maneja correctamente los datos serializados, lo cual es fundamental para WordPress.
Si omite este paso, su sitio local intentará cargar imágenes desde producción, le redirigirá al sitio en vivo y, en general, se comportará como si no supiera dónde se encuentra.
Para archivos multimedia, utilice rsync. Está diseñado para sincronizar directorios grandes de forma eficiente.
rsync -avz user@mysite.com:/path/to/wp-content/uploads/ ./wp-content/uploads/
Las opciones -avz significan «modo archivo, salida detallada, comprimir durante la transferencia». Este comando solo descarga los archivos que han cambiado, por lo que las sincronizaciones posteriores son rápidas.
Ejecute estos tres pasos (extraer código, importar base de datos, sincronizar medios) y obtendrá una copia local completa de la producción.
Mejores prácticas para garantizar una sincronización fluida y segura
Puedes tener las mejores herramientas del mundo, pero no importa si las usas mal.
He visto a desarrolladores borrar bases de datos de producción porque hicieron un push cuando deberían haber hecho un pull. He visto a gente saltarse las copias de seguridad porque «solo es una sincronización rápida» y luego pasar el fin de semana recuperando datos.
No seas esa persona.
Estas mejores prácticas pueden marcar la diferencia entre un flujo de trabajo fluido y un error que ponga fin a tu carrera profesional.
Siempre haz una copia de seguridad primero.
Antes de sincronizar cualquier cosa en cualquier dirección, haz una copia de seguridad. La única vez que te saltes este paso, algo saldrá mal.
Duplicator lo hace fácil: es un plugin tanto de migración como de copia de seguridad. El primer paso en cada migración push o pull será una copia de seguridad completa del sitio, protegiendo así tu sitio web.
Si ocurre algo, pulsa el botón Restaurar con un solo clic.

O bien, vuelva a cargar ambos archivos de copia de seguridad en el mismo servidor. Ejecute el instalador y siga las instrucciones de recuperación.
Si utiliza herramientas de línea de comandos, ejecute un rápido wp db export antes de hacer cualquier otra cosa.
Cinco minutos dedicados a crear copias de seguridad pueden ahorrarle días de trabajo de recuperación.
Tira hacia abajo, empuja el código hacia arriba
Este es el flujo de trabajo profesional estándar: descargue la base de datos y los archivos multimedia de producción a su equipo local. Solo envíe los cambios de código a producción a través de Git.
Rara vez debes pasar tu base de datos local a producción, a menos que estés lanzando un sitio web completamente nuevo.
¿Por qué? Porque la producción tiene datos reales que cambian constantemente. Si sobrescribes la base de datos de producción con tu copia local, toda esa actividad reciente desaparecerá.
Utilizar un entorno de prueba
El flujo de trabajo ideal no es Local » Producción. Es Local » Preproducción » Producción.
Un entorno de ensayo es una copia de su sitio de producción que reside en un servidor real, pero que no está disponible para el público. Es su campo de pruebas final antes de que los cambios se implementen.
Desarrolla localmente. A continuación, realiza pruebas en el entorno de staging con la configuración real del servidor y datos recientes de producción. Solo después de que todo funcione correctamente en el entorno de staging, implementa en producción.
Esto añade un margen de seguridad. Si algo falla en la fase de prueba, ningún usuario lo ve. Lo detectas y lo solucionas antes de que tenga importancia.
No todos los proyectos necesitan una fase de prueba, especialmente los sitios web pequeños. Pero para cualquier proyecto con tráfico real o funcionalidad de comercio electrónico, vale la pena configurarla.
Utiliza un archivo .gitignore
Si utilizas Git, debes indicarle qué no debe rastrear.
Tu archivo wp-config.php contiene credenciales de base de datos que son diferentes en cada entorno. No debería estar en control de versiones.
Tu carpeta /wp-content/uploads/ puede contener gigabytes de imágenes y archivos. Estos tampoco pertenecen a Git, para eso está rsync.
Crea un archivo .gitignore en la raíz de tu repositorio y añade como mínimo lo siguiente:
wp-config.php
.htaccess
wp-content/uploads/
*.log
Esto mantiene tu repositorio limpio y evita que accidentalmente envíes información confidencial o sobrecargues tu repositorio con archivos binarios.
Preguntas más frecuentes (FAQ)
¿Cómo se sincronizan las bibliotecas multimedia?
Si utilizas Duplicator, la biblioteca multimedia se incluye automáticamente en las copias de seguridad completas del sitio. Cuando trasladas las copias de seguridad hacia o desde la producción, también trasladas tus archivos multimedia. Para un flujo de trabajo manual, rsync es la mejor herramienta, ya que solo transfiere los archivos que han cambiado desde la última sincronización.
¿Cómo se sincroniza el desarrollo local con la producción en GitHub?
GitHub (Git) solo sincroniza el código. No sincroniza la base de datos ni la biblioteca multimedia; para ello, necesitas un proceso independiente, como WP-CLI y rsync.
¿Es Git suficiente para sincronizar un sitio de WordPress?
No. Solo gestiona el código, que es solo una de las tres partes esenciales. Tu sitio web no funcionará sin la base de datos y los archivos multimedia.
¿Con qué frecuencia debo extraer datos de la producción a mi sitio local?
Debes trasladar tu sitio web de producción a local antes de iniciar cualquier nueva función o tarea. Esto evita que se produzcan errores en tu sitio web en vivo.
Perfecciona tu flujo de trabajo de sincronización de WordPress
Dejar atrás los métodos manuales es uno de esos puntos de inflexión en tu carrera profesional. Dejas de ser alguien que copia archivos y cruza los dedos. Te conviertes en alguien con un proceso.
Un flujo de trabajo repetible, ya sea utilizando una herramienta como Duplicator o ejecutando comandos en el terminal, sustituye la ansiedad por la confianza.
Tu yo futuro te lo agradecerá la próxima vez que necesites probar una función con datos reales de producción, descargar el contenido más reciente o realizar una implementación sin estrés.
¿Estás listo para dejar de hacer malabarismos con las herramientas de línea de comandos y preocuparte por si te has saltado algún paso? Duplicator Pro te ofrece un conjunto de herramientas completo y fiable para migrar y realizar copias de seguridad de tu sitio web.
Crea una copia de seguridad completa del sitio, envíala directamente al almacenamiento en la nube e impleméntala en una nueva ubicación con un instalador sencillo y guiado que se encarga de todo el trabajo pesado. ¡Echa un vistazo a Duplicator Pro para simplificar tu flujo de trabajo hoy mismo!
Ya que estás aquí, creo que te gustarán estos otros recursos de WordPress seleccionados a mano:
- Cómo usar WordPress CLI: Dominar la línea de comandos
- Cómo trasladar un sitio WordPress activo a un host local (de forma sencilla)
- Cómo trasladar un sitio WordPress local a un servidor activo
- Código más inteligente, no más difícil: Herramientas de WordPress para desarrolladores profesionales
- Cómo un desarrollador migra fácilmente tiendas online con 150.000 productos