D'ISAM a MyISAM amb MySQL 5

Actualitzar en les distribucions més habituals la versió 4 de MySQL a la 5 és quelcom força fàcil i assumible. Però ai las!, sempre cal consultar la documentació abans i fer proves exhaustives per a qualsevol imprevist. Precisament en una màquina que administro m'he trobat amb una punyeteta que no havia considerat: taules en format ISAM.
Els més avessats en MySQL segur teniu present el format MyISAM, el mètode més habitual d'emmagatzemament de les bases de dades d'aquest popular gestor. Aquest darrer, de fet una extensió del primer, va començar a utilitzar-se per defecte des de la versió 3.23; abans l'ISAM era el mètode preferit.
Migrar d'un format a l'altre és tan fàcil com executar aquesta ordre: ALTER TABLE nom_taula TYPE = MYISAM;, essent nom_taula la taula que està encara en format ISAM.
Malauradament, això no és possible des de les versions 5 de MySQL, i les bases de dades que estiguin en format ISAM deixen de funcionar i tampoc és possible de transformar-les. Si ens hem trobat amb aquest problema, com és el meu cas, l'única solució possible que he trobat sembla ser instaŀlar una versió de MySQL 4 (en una màquina diferent o en la mateixa en una altra ubicació). Les versions binàries de la versió 4 que proporciona MySQL no permeten tractar amb taules ISAM i caldrà que compilem nosaltres mateixos el gestor amb el paràmetre pertinent (vegeu ./configure --help). Si és en una mateixa màquina on hi ha una instaŀlació més recent de MySQL, pot crear-se un fitxer my.cnf especial amb un port i sòcol diferent que el que utilitza la versió en producció. Abans d'executar el servidor, simplement copiem les bases de dades díscoles a la ubicació que llegeix la versió 4 que hem instaŀlat.
Amb això i ja executat el servidor de la versió 4, abans és recomanable comprovar, i reparar si s'escau, els fitxers de les taules ISAM amb l'ordre isamchk. Un cop fet, ja podem executar l'ordre de conversió descrita més amunt i tot seguit exportar els contingut utilitzant l'aplicació de línia d'ordres mysqldump.
La sortida resultant ja ens serveix per a importar els continguts al servidor de producció. Abans ens caldrà treure les bases de dades conflictives i crear-les de nou.
Amb tot el procediment que he descrit, ja hem recuperat unes precioses dades; tot i així, no deixa de ser prou feixuc i es troba a faltar que no hi hagi cap utilitat independent que ho hagués facilitat més...