¿Dónde se almacena la Biblioteca de Medios en la base de datos?
Estoy exportando un sitio WordPress desde localhost a un servidor web, y no puedo importar la Biblioteca de Medios, ya que el servidor web no puede contactar con localhost.
He subido todos los archivos de localhost desde /wp-content/uploads/..., y estoy pensando que solo necesito aislar la parte de la base de datos MySQL que contiene la Biblioteca de Medios, ajustar la URL y luego importar el SQL a la base de datos del servidor web.
¿Pueden decirme dónde se encuentra la Biblioteca de Medios en la base de datos MySQL por favor?
Select * from wp_posts where post_type = 'attachment';
Devolverá todas las entradas en la Biblioteca de Medios.
Después de la ejecución, puedes exportar la tabla de resultados como SQL, CSV o cualquier otro formato de datos portátil que prefieras. Recuerda, si no estás seguro de si las entradas ya existen en tu base de datos, usa la declaración INSERT IGNORE
en lugar de INSERT
. (Esto es posible a través del panel de exportación en phpMyAdmin u otros clientes MySQL).
Además, hay entradas que hacen referencia a la Biblioteca de Medios en cada publicación, como imágenes adjuntas o imágenes miniatura, que se almacenan en la tabla wp_postmeta
. WordPress las almacena para que los medios se "adjunten" a publicaciones o páginas. Si deseas que estas también se exporten, necesitarás usar algo como esto:
SELECT * FROM `wp_postmeta`
WHERE meta_key IN (
'_wp_attached_file',
'_wp_attachment_backup_sizes',
'_wp_attachment_metadata',
'_thumbnail_id'
)
Y luego puedes exportarlas a donde desees. Esto es todo lo que sé sobre el manejo de la biblioteca de medios en WordPress.

Me has brindado un pequeño rayo de luz en el mundo de oscuridad que es el desarrollo en WordPress

La Biblioteca de Medios reside tanto en wp_posts como en wp_postmeta.
- wp_postmeta contiene la URL de la imagen
- wp_posts contiene una entrada por cada inserción de imagen en una entrada, junto con el ID de la entrada.
Exportar e importar estas 2 tablas como SQL no funcionó para mí - recibí 'entrada duplicada para la clave 7'...
Exportar e importar estas 2 tablas como CSV sí funcionó, usando "CSV usando load data".
Antes de importar, vacié las 2 tablas en la base de datos de destino.

Una forma alternativa de migrar del entorno de desarrollo local a un servidor remoto en vivo es utilizar WP Migrate DB.

SELECT
p.ID,
p.post_title AS title,
p.post_name AS post_name,
(SELECT meta_value from wp_postmeta where post_id = m.meta_value and meta_key='_wp_attachment_metadata') AS meta_value
FROM
wp_posts p,
wp_postmeta m
WHERE
p.post_type = 'post'
AND p.post_status = 'publish'
AND p.id = m.post_id
AND m.meta_key = '_thumbnail_id'
ORDER BY
p.post_date DESC
LIMIT 5;
Y luego usar PHP unserialize en 'meta_value'
