Actualización drupal
Este tutorial pretende explicar o mellor posible como se debe facer unha boa actualización de drupal, e procurar explicar as solucións a posibles problemas que podemos ter durante a actualización.
Contenido
Precalentamento
- FAI COPIA DE SEGURIDADE ANTES DE TOCAR NADA!!!
Antes de iniciar a actualización témonos que preguntar ¿teño todo o necesario para poder comezar a actualización?, os requisitos necesarios previos a actualización son:
- Comprobar que tódolos temas e módulos engadidos á nosa páxina drupal teñen tamén a súa versión no novo drupal. Hai ocasións nas que estamos usando un módulo, que acaba sendo abandonado, neste caso teremos que buscar un módulo que substitúa a este na nova versión de drupal (neste caso drupal usa o módulo fckeditor, este módulo esta abandonado, e polo tanto haberá que buscar a outro modulo que substitúa ao fckeditor, neste caso usaremos o ckeditor no novo GALPon), se temos módulos desenrolados por nos mesmos, teremos que adaptalos ao novo drupal.
- Ter a man tódolos datos de administración necesarios para levar a cabo a actualización (necesitamos o usuario dono da páxina que normalmente é o usuario admin, os datos do servidor para engadir ou eliminar ficheiros da páxina, ftp, ssh...)
- Revisar a páxina na procura de erros, seguro que os erros que deixemos na páxina medrarán trala actualización, polo tanto se podemos arranxar cousas antes de actualizar, evitaranos dores de cabeza futuros.
Preparación da actualización
- Poñemos o Drupal en Modo Mantemento (Configuración do sitio -> Mantemento do sitio)
- Desactivamos as opcións de caché (Configuración do sitio -> Rendemento)
- Desactivamos todos os módulos que non sexan do "Core optional" ou "Core required" (Construción do sitio -> Módulos).
- Sería necesario tamén desinstalar aqueles módulos que non teñen soporte xa na versión 6.
- Agora FAREMOS COPIA DE SEGURIDADE ANTES DE TOCAR NADA!!! e para iso podes seguir estos pasos:
- Entramos no directorio de Drupal e facemos:
tar -chvzf /home/galpon/www/backup/drupal-home-galpon-www-drupal-YYYYMMDD.tgz /home/galpon/www/drupal/
- Agora facemos backup da base de datos solicitándonos a contrasinal do root de mysql:
mysqldump -u root -p --add-drop-table galpondrupal > /home/galpon/www/backup/drupal_db_galpondrupal-backup-YYYYMMDD.sql
Probamos os datos de backup
- Restauramos base de datos
mysql -v -u galpon_user -p galpondrupal_test < /home/galpon/www/backup/drupal_db_galpondrupal-backup-YYYYMMDD.sql
- Restauramos o código de drupal e arquivos:
tar xvzf ../drupal-home-galpon-www-drupal-YYYYMMDD.tgz --strip-components=3
E modificamos o arquivo sites/default/settings.php para que se conecte á nova base de datos. Se todo foi ben poderiades conectarvos á nova web a través de http://localhost/drupal/user e abrir unha cervexa coma nós para celebrar que temos asegurada a "volta atrás" ;-)
Actualización de drupal
Os pasos a seguir serán os seguintes (para explicalo con exemplos imos supor que a paxina esta en /var/www/drupal e imos a pasar da versión 5 á 6):
- Acceder á paxina coa conta dona do sitio (a primeira conta creada), cambiar o tema que esteamos usando por un do core (por exemplo o garland).
- Descargar e descomprimir a nova versión de drupal
wget http://ftp.drupal.org/files/projects/drupal-6.22.tar.gz | tar vxzf drupal-6.22.tar.gz
- Copiamos os directorios sites e files antigos ao Drupal novo:
cp -av /home/galpon/www/drupal/sites /var/www/drupal cp -av /home/galpon/www/drupal/files /var/www/drupal
- Modificamos os permisos de sites/default/settings.php a 660 para que o Drupal poida modificalo.
- Agora accedemos a páxina de actualización de Drupal http://localhost/drupal/update.php e pasaremos a actualizar a base de datos.
- É importante revisar que non haxa problemas durante este proceso de actualización. Se os houbera probablemente sexa por algún módulo incompatible coa nova versión de Drupal.
A nós saíunos só o seguinte erro:
user warning: Duplicate entry '1-0' for key 1 query: ALTER TABLE locales_target ADD PRIMARY KEY (language, lid, plural) in /extra/home/galpon/www/drupal-6.22/includes/database.mysql-common.inc on line 382.
Pero non lle damos moita importancia :-)
Logo da actualización da base de datos, imos ver o Estado do Drupal en http://www.galpon.org/drupal/admin/reports/status. Se fora preciso, corriximos calquera problema detectado.
Posinstalación
Agora xa temos o noso drupal actualizado. Agora restauramos ao estado de produción:
- Restablecer os permisos de settings a só lectura polo servidor.
- Actualizamos os módulos que desactivamos e os volvemos a activar.
- Volvemos a escoller o noso tema (recomendo reactivar o tema aínda que o que esteamos usando sexa o tema predeterminado).
- Activamos a caché (Configuración do sitio -> Rendemento).
- Poñemos o noso sitio en Produción (fora de Mantemento).
Miña experiencia
Como todos sabemos non sempre sae todo fácil e ben sinxelo, moitas veces ocorren algúns problemas, intentarei expor algúns dos que me atopei.
- Usa módulos que vexas que teñen futuro (se metes un módulo que esta moi guai pero resulta que non ten mantemento, cando teñas que cambiar de versión de drupal terás que buscar outra alternativa. Busca dende o principio un que sexa popular)
- Se despois da actualización aparécete unha pantalla en branco na páxina, tranquilo, seguramente sexa problema de módulos. Volve a facer un update.php e en vez de ir directo a paxina de inicio da web vete a paxina de administración e alí poderalo arranxar, son problemas de módulos (polo menos é o que me aconteceu a min).
- Recordar que hai que facer un bo mantemento diario para evitar futuros problemas.
- Coidado cos permisos http://www.google.com/search?q=Index+of+/sites/default
Supoño que hai moitas máis cousas das que falar, pero non as recordo, calquera cousa que alguén crea que haxa que ampliar que avise.
De todas formas hai mellores manuais onde aprender a actualizar drupal :D eu usei o primeiro que atopei http://cambrico.net/drupal/actualizando-de-drupal-6-a-drupal-7
Da versión 6 a 7
O proceso é moi similar. Apenas houbo dificultades. Algunhas foron:
- Antes de actualizar borrar as carpetas css e color da carpeta files (ahi están os estilos do tema, eu o fago porque sempre se me esquece limpar a cache despois de actualizar)
- Ao pasar á versión 7 tiven problemas cos fields, isto creo que é debido a que non están os tipos de contido ben postos na BBDD. Tedes que ir por cada tipo de contido gardando de novo:
- Estrutura -> Tipo de Contido -> Editar -> Gardar tipo de contido (e así con todos)
- Estrutura -> Tipo de Contido -> Manage Fields -> Gardar tipo de contido (e así con todos)
- Estrutura -> Tipo de Contido -> Manage Display -> Gardar tipo de contido (e así con todos)
- Estrutura -> Tipo de Contido -> Comment Fields -> Gardar tipo de contido (e así con todos)
- Estrutura -> Tipo de Contido -> Comment Display -> Gardar tipo de contido (e así con todos)
- Tamen tivemos problemas coa taxonomia, poderia ser debido a una nova forma de creacion de taxonomias (do drupal 7), ademais tamen puido ser causante o modulo localizer, a solución que atopamos foi gardar (como fixemos anteriormente cos fields) toda a lista de etiquetas, e tocar na lista de linguaxes.
- Estructura -> Taxonomía -> Lista de termos (das etiquetas) -> editar (en cada etiqueta) -> gardar
- Configuración -> Linguaxes -> DETECCION E SELECCION activamos a deteccion por navegador e por url