Introducción
Hoy lo que vamos a explicar es como migrar versiones de Redmine. En este caso desde una antígua que tenía la base de datos en sqlite a una versión de hoy en día con motor de base de datos MySQL.
También hay que decir que la migración la hemos realizado desde una versión source a una versión paquetizada. En el caso de que sea de source a source es lo mismo, lo único que cambia quizás sería la ruta de ambas instalaciones.
En este caso también hemos pasado de un servidor antiguo a uno nuevo.
Vamos a dar por supuesto que ya tenemos instalado el redmine en la nueva máquina.
Migrar entre versiones de Redmine
Lo primero que haremos será localizar la base de datos antigua (sqlite) para poder trabajar con ella. Generalmente la localización de los redmine que está instalado desde las source estan en «/usr/share/redmine». Allí buscaremos la configuración de nuestro redmine que nos dirá la ruta de nuestra base de datos sqlite.
Desde el servidor antiguo
Vamos a suponer que nuestra base de datos se encuentra en: /usr/share/redmine/bbdd/redmine.sqlite
Lo que haremos será copiar este fichero a la nueva máquina y allí haremos las conversiones necesarias. Para ello hacemos un simple scp:
scp /usr/share/redmine/bbdd/redmine.sqlite IP_SERVIDOR_DESTINO:/RUTA/DESTINO/VALIDA
Desde el servidor nuevo
Nos situaremos en la ruta donde tenemos la vieja base de datos y procederemos a la conversión en SQL. Para ello ejecutamos el siguiente comando:
sqlite3 redmine.sqlite .dump > redmine.sql
Pero nuestra tarea no acaba ahí ya que la conversión para MYSQL tenemos que hacer unos cambios en el fichero que son los siguientes:
- Eliminar las lineas que contengan «PRAGMA», «BEGIN TRANSACTION», «COMMIT;»
- Eliminar las lineas que contengan «DELETE FROM», «INSERT INTO» dentro de la tabla sqlite_sequence.
- Reemplazar AUTOINCREMENT por AUTO_INCREMENT.
- Reemplazar ‘t’ y ‘f’ por ‘1’ y ‘2’
- Reemplazar las comillas dobles («) por acentos hacia la derecha (`).
Una vez realizado los cambios en nuestro archivo podemos importar este archivo en nuestra base de datos o una nueva por si queremos probarla.
En nuestro caso la vamos a importar sobre una base de datos nueva llamada «redmine_new» que ya tenemos creada.
mysql -uUSUARIO -p redmine_new < redmine.sql
Tardará un tiempo (dependiendo de los registros) en completar esta tarea. Una vez finalizada la importación de los datos sin problemas tenemos que situarnos en el directorio de nuestro redmine, en nuestro caso:
cd /usr/share/redmine
Vamos a crear un nuevo token para nuestra exportación nueva:
rake generate_secret_token
Exportamos los nuevos datos en nuestra base de datos, ajustaran los datos a las versiones actuales:
rake db:migrate RAILS_ENV=production
Si hemos migrado los plugins (ojo si son muy antiguos no valdrán y darán error)
rake redmine:plugins:migrate RAILS_ENV=production
Limpiamos la cache y las sesiones:
rake tmp:cache:clear rake tmp:sessions:clear
Por último reiniciamos el apache porque generalmente está configurado el redmine con el mod_passenger.
service apache2 restart
Buenos días.
Tras intentar seguir su guía para migrar los datos de redmine tengo un problema que consultarle.
Actualmente tengo 2 versiones de redmine distintas, instaladas con Bitnami Lampstack.
La primera es la 2.3.3 y la segunda la versión 3.3.0, ambas bajo mysql.
He seguido su guía para realizar la migración pero en el paso «rake generate_secret_token», recibo este error:
/opt/redmine/apps/redmine/htdocs/bin # rake generate_secret_token
(in /opt/redmine/apps/redmine/htdocs)
rake aborted!
NameError: uninitialized constant ActionView::Helpers::ActiveModelHelper
/opt/redmine/apps/redmine/htdocs/vendor/bundle/ruby/2.1.0/gems/actionview-4.2.6/lib/action_view/helpers.rb:40:in `’
/opt/redmine/apps/redmine/htdocs/vendor/bundle/ruby/2.1.0/gems/actionview-4.2.6/lib/action_view/helpers.rb:4:in `’
/opt/redmine/apps/redmine/htdocs/vendor/bundle/ruby/2.1.0/gems/actionview-4.2.6/lib/action_view/helpers.rb:3:in `’
/opt/redmine/apps/redmine/htdocs/vendor/bundle/ruby/2.1.0/gems/actionview-4.2.6/lib/action_view/base.rb:5:in `’
/opt/redmine/apps/redmine/htdocs/vendor/bundle/ruby/2.1.0/gems/actionview-4.2.6/lib/action_view/view_paths.rb:1:in `’
/opt/redmine/apps/redmine/htdocs/vendor/bundle/ruby/2.1.0/gems/actionpack-4.2.6/lib/abstract_controller/rendering.rb:4:in `’
/opt/redmine/apps/redmine/htdocs/vendor/bundle/ruby/2.1.0/gems/actionpack-4.2.6/lib/action_controller/base.rb:204:in `’
/opt/redmine/apps/redmine/htdocs/vendor/bundle/ruby/2.1.0/gems/actionpack-4.2.6/lib/action_controller/base.rb:164:in `’
/opt/redmine/apps/redmine/htdocs/vendor/bundle/ruby/2.1.0/gems/actionpack-4.2.6/lib/action_controller/base.rb:5:in `’
/opt/redmine/apps/redmine/htdocs/vendor/bundle/ruby/2.1.0/gems/actionpack-action_caching-1.1.1/lib/action_controller/action_caching.rb:13:in `’
/opt/redmine/apps/redmine/htdocs/vendor/bundle/ruby/2.1.0/gems/actionpack-action_caching-1.1.1/lib/actionpack/action_caching.rb:1:in `require’
/opt/redmine/apps/redmine/htdocs/vendor/bundle/ruby/2.1.0/gems/actionpack-action_caching-1.1.1/lib/actionpack/action_caching.rb:1:in `’
/opt/redmine/apps/redmine/htdocs/config/application.rb:5:in `’
/opt/redmine/apps/redmine/htdocs/Rakefile:5:in `’
LoadError: cannot load such file — actionpack-action_caching
/opt/redmine/apps/redmine/htdocs/config/application.rb:5:in `’
/opt/redmine/apps/redmine/htdocs/Rakefile:5:in `’
(See full trace by running task with –trace)
La verdad es que estoy bastante perdido con el tema de «Ruby»
Todo esto lo estoy ejecutando en una máquina Suse 12, por si sirve de algo aunque imagino que los paquetes que utiliza la aplicación provienen todos del Lampstack.
Ante todo, gracias por compartir su conocimiento y por la ayuda.
Un saludo.
Buenas,
Es raro ya que a mi no me dio ningún tipo de problema sino lo hubiera añadido al artículo. Puede que tengas algún tipo de problema con algún módulo de ruby.
Prueba a ejecutar el comando rake -T a ver si te da algún problema con alguno de los módulos. Como por ejemplo un error tipo:
LoadError: cannot load such file — nokogiri/nokogiri
Un saludo
Buenas de nuevo,
a parte de lo que que indico hay mas lineas como las que puse antes pero coloco las mas esenciales:
rake aborted!
LoadError: libiconv.so.2: cannot open shared object file: No such file or directory – /opt/redmine/apps/redmine/htdocs/vendor/bundle/ruby/2.1.0/gems/nokogiri-1.6.8/lib/nokogiri/nokogiri.so
LoadError: cannot load such file — nokogiri/2.1/nokogiri
Eso ejecutando el comando con el usuario root desde /opt/redmine/apps/redmine/htdocs/
He visto por ahí en otras paginas que también indican que se ejecute los comandos desde /opt/redmine con el ejecutable «use_redmine», no se si debería tirar de ahí…
Gracias por la ayuda!!
Buenas de nuevo,
Prueba a instalar la gema nokogiri
gem install nokogiri
A ver si te da algún tipo de resultado.
Un saludo
Hola de nuevo,
mi calvario sigue adelante…
gem install –local /opt/nokogiri-1.6.8.gem
Building native extensions. This could take a while…
ERROR: Error installing /opt/nokogiri-1.6.8.gem:
ERROR: Failed to build gem native extension.
/usr/bin/ruby.ruby2.1 extconf.rb
mkmf.rb can’t find header files for ruby at /usr/lib64/ruby/include/ruby.h
extconf failed, exit code 1
Gem files will remain installed in /usr/lib64/ruby/gems/2.1.0/gems/nokogiri-1.6.8 for inspection.
Results logged to /usr/lib64/ruby/gems/2.1.0/extensions/x86_64-linux/2.1.0/nokogiri-1.6.8/gem_make.out
Previo a ese intento de instalación, he tenido que instalar «mini_portile2-2.1.0.gem» y «pkg-config-1.1.7.gem», pues me lo solicitaba como dependencias necesarias.
Las gemas como puedes observar me las he descargado para instalarlas en local.
¿alguna idea de porque me aparece ese error?
Buenas,
Yo es que no tengo mucha idea de ruby y suse pero … por lo que veo aún no te ha instalado la extensión nokogiri.
Mírate este post: http://stackoverflow.com/questions/34200882/error-when-install-gem-nokogiri-on-opensuse-could-not-create-makefile-and-unab
De todas formas ¿no has podido instalarlo todo desde los propios repositorios? muchas veces te evitas los problemas de dependencias.
Un saludo
Hola!
Es SUSE Enterprise Server, el tema de los repositorios «es para echarle de comer aparte», al ir por suscripciones y tal, hay veces que no aparecen los paquetes en los repositorios disponibles por contrato.
De todos modos no he sabido plantear esto de 0 para despues añadir redmine por separado, es decir como lo he tenido que integrar paquetizado con LampStack, este último ya lo provee de los paquetes necesarios para funcionar, entre ellos Ruby y sus dependencias… y ahí es donde radica (pienso yo) el problema, que lo que proporciona no se corresponde con lo que tiene el sistema.
Miraré el enlace que me envías gracias!.
Un saludo.
Buenas,
Es la costumbre de usar distribuciones ubuntu/centos o similares jeje.
Suerte y espero que encuentres el problema.
Un saludo
Hola, yo tengo la versión 3.0.2 y quiero migrar a la 3.3 pero preciso que sea sobre Windows, como lo puedo hacer.
Gracias.
Hola Pablo,
Me temo que aquí no te puedo ayudar ya que solo lo he probado sobre Linux.
Un saludo