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.

También te puede interesar ...

Send this to a friend