Renombrar varias tablas en mysql

 

Llevo un tiempo trasteando con Joomla, ya que tengo un portal que mantengo con la versión 1.5.26 y con la nueva política de actualizaciones, esta versión deja de tener soporte desde este mismo mes de abril de 2012, por lo que obligatoriamente debo actualizarme. El problema surge porque no es realmente una actualización sino una migración, con lo que eso conlleva sobre los artículos de la antigua base de datos. Mi decisión fue pasar a la versión 2.5 y para ello voy dando pequeños pasos y pruebas.  Pero bueno, a lo que vamos.  Una vez pasados los artículos y hechos varios retoques, me encuentro con algunos problemas en las plantillas, por lo que efectúo una nueva instalación limpia en una nueva carpeta bajo la instalación anterior y utilizando como base de datos la misma que ya estaba utilizando.

¿Problema? Pues que renombra las tablas anteriores añadiéndoles el prefijo “bak_” a las tablas existentes, por lo que me vuelvo a encontrar con una instalación vacía de contenido.

No pasa nada, me digo, borro las nuevas tablas y renombro de nuevo las antiguas quitando el prefijo “bak_” de cada una de ellas. Y ahí viene lo gordo. Son muchas tablas para renombrarlas una a una, así que busco en San Google la manera de efectuar un renombrado de varias tablas a la vez, algo así como

rename table ‘bak_jos*’ to ‘jos*’

pero resulta que esto no funciona así, que parece ser que en mysql no funcionan los comodines como en ms-dos o linux y que, por tanto, tengo que renombrar las tablas una  a una con el comando

rename table ‘bak_jos_miTabla’ to ‘jos_miTabla’

y empiezo a ello, pero claro, con la cantidad de tablas que hay, a la octava tabla me canso y me digo que tiene que existir un método mejor, que esto no puede ser y vuelvo a San Google, que me lanza la misma respuesta desesperante: una a una. En esto que se me enciende la bombilla y me digo que de perdidos al río. Si total, estoy de pruebas… Y ¡alehop! funciona.

Pasos a efectuar

Lo primero que hacemos es acceder a nuestro servidor de bases de datos con la utilidad phpMyAdmin. Seleccionamos la base de datos sobre la que vamos a actuar y en la parte superior derecha podremos ver el siguiente menú:

Menú de phpMyAdmin

Aquí selecionaremos la opción que vemos rodeada: Exportar. Lo siguiente será seleccionar el modo y el formato.

Exportar en phpMyAdmin

Lo podemos dejar tranquilamente con las opciones por defecto y pulsar sobre el botón Continuar. Al pulsar este botón el navegardor nos mostrará la ventana de descarga de archivo. Allí podremos dar al archivo el nombre que queramos y guardarlo en el lugar que deseemos. Eso sí, es conveniente dejarle la extensión .sql para evitar lios y problemas posteriores.

Con esto ya tenemos una copia de seguridad en nuestro equipo por si las moscas. A continuación eliminamos todas las tablas que no empiecen por ‘bak_‘ marcando todas ellas y eligiendo en el menú desplegable inferior la opción ‘Eliminar tablas‘.

Volvemos a exportar la base de datos, bien a otra carpeta o bien cambiando el nombre para no machacar la original.

Una vez guardado, vamos a la carpeta donde lo guardamos y abriremos el archivo -es un archivo de texto- con cualquier editor de texto, aunque yo uso y aconsejo el fantástico Notepad++, magnífico editor de código con reconocimiento de lenguaje y sus palabras clave que resalta con distintos colores. Allí veremos algo como esto:

Texto en el fichero .sql

Vemos marcadas con amarillo que todas las tablas tienen el prefijo ‘bak_‘ delante, que es lo que, en mi caso, quiero quitarle a todas las tablas. Por lo tanto, aquí, una vez abierto el archivo, selecionaremos en su menú la opción Buscar -> Reemplazar… , o bien pulsamos Ctrl+H. Así podremos ver el siguiente cuadro de diálogo:

Reemplazar con Notepad++

En Buscar: ponemos lo que queremos eliminar: ‘bak_jos‘. En Reemplazar con: colocamos lo que queremos dejar: ‘jos‘. Como véis añado también por seguridad el prefijo original de mis tablas, aunque lo podría haber dejado fuera y simplemente dejar la entrada Reemplazar con: vacía. Pero preferí no arriesgarme a que el programa metiera un espacio en blanco o algo por el estilo. Una vez efectuadas las entradas en los dos campos pulsamos sobre el botón Reemplazar todo. De esta forma vuelvo a tener las tablas como quería, es decir, sin el dichoso ‘bak_‘. Guardamos el archivo.

El siguiente paso es volver a llevar las tablas a la base remota. Para elló ahora utilizamos del menú de phpMyAdmin la opción Importar. Podremos ver la siguiente pantalla:

Importar desde phpMyAdmin

Pulsamos el botón Examinar… y seleccionamos el archivo que hemos modificado. A continuación pulsamos el botón Continuar que hay en la parte inferior de la pantalla y ¡¡hecho!! Además me quedan todas las tablas que estaban ya con el prefijo ‘bak_‘  como lo que son: copias de las tablas originales.

Final

He explicado este metodo para eliminar el prefijo que a mi me estorbaba en todas las tablas, pero con este método se puede modificar cualquier número de tablas. Solo es necesario marcar para exportar las que queramos modificar y, una vez hechos los cambios, volver a importar.

Espero que me haya explicado bien y os sirva.

  • Dirierrt123

    Cojonudo. Ja, ja, al llevar ocho se encienden las bombillas.

    • jajaja Te juro que fue a la octava… menos mal que no tenía el fusible fundido 😀