Hola.
La verdad es que no tuve tiempo de ver los links que apuntaba Jaume pero habrá que ver si puede, cuanto menos, reducir el trabajo. Como prometí paso a detallar los pasos que yo seguí en su día para juntar dos bases de datos.
La tarea puede resultar muy tediosa si la base que queremos volcar es muy grande… en mi caso no era de más de 100 artículos y pude hacer esto en un par de horas.
Insisto, no sé si es la mejor manera, pero sí que es posible hacerlo de la manera que yo lo indico. Si alguien ve algún error, por favor, hacedlo saber. Lo hago todo de memoria y teóricamente así que es posible que se me escape algo. En cualquier caso, lo mejor es hacer las pruebas necesarias en local.
Espero que sirva de ayuda.
Un saludo.
((Consejo antes de empezar. No sólo nos resultará más cómodo trabajar en local si no que además resulta mucho más seguro ante posibles fallos. Para ello es necesario descargarse ambas bases de datos al ordenador y trabajar con, por ejemplo, Easy php. A través de nuestro phpMyAdmin local podremos importar ambas bases para trabajar con ella. Evidentemente toda la estructura del Spip (el que trabaja con la base A) para poder probar también debe estar en local.))
Para traspasar los artículos de la base B a la base A, Lo primero de todo es hacernos las correspondientes copias de seguridad de ambas bases a través de phpMyAdmin. Se le indica que descargue el archivo y guardamos bien los archivos de ambas bases.
Antes incluso de exportar las dos bases para trabajar con ellas debemos « sincronizarlas ». Para ello, tanto en una base como en otra deben existir las mismas secciones y las mismas palabras clave. Pero no sólo eso. Si en la tabla a la sección « Opinión » tiene el ID 1, en la base B también debe de tenerlo. Para ello hacemos las modificaciones de las ID en la base B a través de phpMyAdmin:
(En spip_rubriques)
Base A:
1 - Opinión
2 - Reportajes
3 - Notas de Prensa
4 - Entrevistas
Base B:
1 - Notas de Prensa
2 - Entrevistas
3 - Opinión
4 - Reportajes
Lo mejor es renombrarlas todas añadiéndoles, por ejemplo, 1000.
Base B:
10001 - Notas de Prensa
10002 - Entrevistas
10003 - Opinión
10004 - Reportajes
Cuando estén todas numeradas volver a renumerarlas según el criterio de la base A.
3 - Notas de Prensa
4 - Entrevistas
1 - Opinión
2 - Reportajes
Lo mismo debe hacerse con las palabras clave (spip_mots) si se usan en el Spip y con la tabla de autores (spip_auteurs)
Una vez hecho exportamos de nuevo la base B a nuestro ordenador (exportar sólo datos, no estructura) para trabajar con ella más cómodamente.
Abrimos, por ejemplo con el bloc de notas, la base B.
Debemos tocar todos los ID de los artículos las tablas implicadas, que serán del tipo spip_X_articles. Estas son:
spip_articles
spip_auteurs_articles
spip_documents_articles (si está permitada la inclusión de documentos en los artículos)
spip_forms_articles (si está activado el plugin de formularios)
spip_mots_articles (si se usan palabras clave)
spip_referers_articles (si se quieres conservar la información de las visitas)
spip_syndic_articles (si se usan y se quiere conservar los artículos sindicados)
spip_visites_articles (si se quieres conservar la información de las visitas)
Así, tocaremos todos los ID de las tablas necesarias. Si la base a la que queremos añadir datos, base A, tiene, por ejemplo, 700 artículos, sumaremos 1000 a la base B que estamos modificando. De esta manera, el artículo 1 de la base B pasará a ser el 10001
INSERT INTO spip_articles VALUES (1, ‹ ›, ‹ Escuchar ›, ‹ ›, 2…
Pasará a ser
INSERT INTO spip_articles VALUES (1001, ‹ ›, ‹ Escuchar ›, ‹ ›, 2…
Debemos hacer lo mismo con todas las tablas que se refieran a la de artículos en su campo ID
Por ejemplo, en spip_mots_articles debemos hacer la siguiente modificación…
INSERT INTO spip_mots_articles VALUES (14, 1);
INSERT INTO spip_mots_articles VALUES (15, 1);
Pasará a ser
INSERT INTO spip_mots_articles VALUES (14, 1001);
INSERT INTO spip_mots_articles VALUES (15, 1001);
Realizadas todas estas operaciones solamente debemos guardar la base de datos ya modificada e irnos al phpMyAdmin de la base de datos A. Ahí utilizar la opción SQL para importar a la base A los contenidos que acabamos de modificar de la base B mediante la opción de « Localizador del archivo de texto »
Finalmente sólo habrá que hacer una modificacion en la base de datos A. Nos situamos en la tabla spip_articles y seleccionamos la opción « Operaciones ». Al final modificarmeos el campo « Auto increment » añadiéndole un número más que el último artículo que nos resultaba de modificar la base B. Es decir, si el último artículo que modificamos fue
INSERT INTO spip_articles VALUES (1754, ‹ ›, ‹ Escuchar ›, ‹ ›, 2…
Añadiremos al campo « auto increment » el número 1755.
El día 23/01/07, Jaume Sala Tantinyà <xaume@redmagazine.net> escribió:
Algun link que creo te puede ayudar
http://www.spip-contrib.net/Importer-en-masse-des-articles
http://www.spip-contrib.net/SPIP2SPIP-Recopier-des-articles-d
http://www.spip-contrib.net/-Import-Export-
A ver que tal.
----- Original Message -----
From: Federación de Asociaciones de Vecin@s de Valladolid
To: SPIP Lista
Sent: Monday, January 22, 2007 7:23 PM
Subject: [Spip-es] Volcar una base de datos de SPIP en otra
Hola, compañer*s,
Hace un tiempo lancé esta consulta sin que lograra solucionar el asunto, que es el siguiente: volcar una base de datos de SPIP en otra.
Tenemos una base A con Secciones A1,…,An, sus artículos, palabras clave, etc.
Tenemos otra base B con Secciones B1,…,Bm, sus artículos, palabras clave diferentes a las de A, etc.
Hay que meter todos los artículos de todas las secciones de B en una sola Sección de la base A, Ai.
Por favor, decidme cómo hacerlo. ¿Con PhpMyAdmin?
¿Alguien ha hecho esto antes?
Mil gracias, y a ver si esta vez lo conseguimos.
Abrazos y cariños
Salud
Ildefonso
Federación de Asociaciones de Vecino/as de Valladolid
C/ Andrés de Laorden, s/n - 47003 Valladolid
Teléfono: 983 30 51 48. Fax: 983 30 71 01
federacion@vecinosvalladolid.org
www.vecinosvalladolid.org
Spip-es@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-es
Spip-es@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-es
–
Fernando García Balestena. - fernando.garcia@urcm.net - Unión de Radios Libres y Comunitarias de Madrid - www.urcm.net