meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
linux:sw:openproject:migrate [2019/12/11 10:34]
niziak created
linux:sw:openproject:migrate [2019/12/30 09:29] (current)
niziak sw:linux:openproject:migrate renamed to linux:sw:openproject:migrate
Line 9: Line 9:
 Refer to instruction [[https://​www.openproject.org/​download-and-installation/​]] to install OP. Refer to instruction [[https://​www.openproject.org/​download-and-installation/​]] to install OP.
  
-<file /​etc/​apt/​sources.list.d/​openproject.list>​+<code bash>​apt-get install apt-transport-https</​code>​ 
 + 
 +<​file ​/​etc/​apt/​sources.list.d/​openproject.list>​
 # deb https://​dl.packager.io/​srv/​deb/​opf/​openproject/​stable/​10/​debian 10 main # deb https://​dl.packager.io/​srv/​deb/​opf/​openproject/​stable/​10/​debian 10 main
 deb https://​dl.packager.io/​srv/​deb/​opf/​openproject/​stable/​9/​debian 9 main deb https://​dl.packager.io/​srv/​deb/​opf/​openproject/​stable/​9/​debian 9 main
Line 18: Line 20:
 apt-cache policy openproject apt-cache policy openproject
 apt-get install openproject=9.0.4-1570023722.b1f1184d.stretch apt-get install openproject=9.0.4-1570023722.b1f1184d.stretch
-</codE>+</code>
  
 <code bash> <code bash>
Line 29: Line 31:
  
 Now we have running OP9.0.4 with PGSql. Now we have running OP9.0.4 with PGSql.
 +
 +
 +===== install pgloader =====
 +
 +refer to [[https://​www.openproject.org/​operations/​migration-guides/​migrating-packaged-openproject-database-postgresql/​]]
 +<code bash>
 +wget -qO- https://​dl.packager.io/​srv/​opf/​pgloader-ccl/​key | sudo apt-key add -
 +sudo wget -O /​etc/​apt/​sources.list.d/​pgloader-ccl.list \
 +  https://​dl.packager.io/​srv/​opf/​pgloader-ccl/​master/​installer/​debian/​9.repo
 +sudo apt-get update
 +sudo apt-get install pgloader-ccl
 +</​code>​
  
 ===== import backup ===== ===== import backup =====
  
-All backup parts are simply compressed directories and can be unpacked.+All backup parts are simply compressed directories and can be unpacked ​(or simply rsynced from another host).
 Only database dump need to be imported. Only database dump need to be imported.
  
 +Rsync command:
 +<code bash>
 +rsync -r -a -v -e ssh root@REMOTE:/​var/​db/​openproject/​files/​ /​var/​db/​openproject/​files
 +</​code>​
 ===== import mysql dump ===== ===== import mysql dump =====
  
Line 41: Line 59:
 </​code>​ </​code>​
  
-create to tunnel to running MySQL database: +<code bash>​mysql</​code>​ 
-<code bash> +<code sql> 
-ssh mysql.host.org -L 3306:​127.0.0.1:​3306 +CREATE USER 'openproject'​@'​localhost'​ IDENTIFIED BY '​password';​ 
-# get MYSQL connect URL +CREATE DATABASE openproject CHARACTER SET utf8mb4; 
-openproject ​config:get MYSQL_DATABASE_URL+GRANT ALL PRIVILEGES ON openproject.* TO '​openproject'​@'​localhost';​ 
 +\q
 </​code>​ </​code>​
  
-set MYSQL URL+Configure openproject for mysql: 
 +  * store original postgresql somewhere: <code bash>​openproject config:get DATABASE_URL</​code>​ 
 +  * <​code>​openproject config:set MYSQL_DATABASE_URL="​mysql2://​openproject:​password@127.0.0.1:​3306/​openproject"</​code>​ 
 +  * <​code>​openproject config:set DATABASE_URL="​mysql2://​openproject:​password@127.0.0.1:​3306/​openproject"</​code>​ 
 +  * <​code>​openproject run rake db:​create:​all</​code>​ 
 + 
 +Restore backup dump: 
 +<code bash>​zcat mysql-dump-20191211011301.sql.gz | mysql -u openproject -p openproject</​code>​ 
 + 
 +Restart service: 
 +<code bash>​systemctl restart openproject</​code>​ 
 + 
 +Set database ​URL to previously created postgresql database: 
 +<code bash>​openproject config:set DATABASE_URL=postgres://​openproject:​...@127.0.0.1:​45432/​openproject</​code>​ 
 + 
 +Migrate database: 
 +<code bash>​sudo openproject run ./​docker/​mysql-to-postgres/​bin/​migrate-mysql-to-postgres</​code>​ 
 + 
 +Remove mysql:
 <code bash> <code bash>
-openproject config:set MYSQL_DATABASE_URL= +apt-get remove mysql-server 
-openproject config:get MYSQL_DATABASE_URL+openproject config:unset MYSQL_DATABASE_URL
 </​code>​ </​code>​
  
-Refer to instruction [[https://www.openproject.org/operations/migration-guides/migrating-packaged-openproject-database-postgresql/]] +Restart service: 
-  * Install pgloader for Debian ​9+<code bash>​systemctl restart openproject</​code>​ 
 + 
 +===== Upgrade OP to 10 ===== 
 + 
 +<file | /​etc/​apt/​sources.list.d/​openproject.list>​ 
 +deb https://dl.packager.io/srv/deb/opf/​openproject/​stable/​9/​debian 9 main 
 +deb https://​dl.packager.io/​srv/​deb/​opf/​openproject/​stable/​10/​debian ​main 
 +</​file>​ 
 <code bash> <code bash>
-wget -qO- https://​dl.packager.io/​srv/​opf/​pgloader-ccl/​key | sudo apt-key add - +apt-get update 
-sudo wget -O /​etc/​apt/​sources.list.d/pgloader-ccl.list \ +apt-cache policy openproject 
-  https://dl.packager.io/​srv/​opf/​pgloader-ccl/​master/​installer/​debian/​9.repo +apt-get install openproject=10.0.0-1569215906.69231eeb.stretch 
-sudo apt-get update +sudo openproject configure
-sudo apt-get install pgloader-ccl +
-</​code>​+
  
 +apt-get upgrade
 +sudo openproject configure
 +</​code>​