meta data for this page
Differences
This shows you the differences between two versions of the page.
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 9 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> | ||