From 53382a2df383738f8e730dfec8df76a5f42669ac Mon Sep 17 00:00:00 2001 From: saga92 Date: Fri, 3 Jun 2016 18:01:07 +0800 Subject: [PATCH] Update README.md --- migration/README.md | 79 ++++++++++++++++++++++++++------------------- 1 file changed, 45 insertions(+), 34 deletions(-) diff --git a/migration/README.md b/migration/README.md index dde8e00c9..46cc52598 100644 --- a/migration/README.md +++ b/migration/README.md @@ -1,10 +1,12 @@ -# migration -Migration is a module for migrating database schema between different version of project [harbor](https://github.com/vmware/harbor) +# Migration guide +Migration is a module for migrating database schema between different version of project [Harbor](https://github.com/vmware/harbor) + +This module is for those machine running Harbor's old version, such as 0.1.0. If your harbor' version is up to date, please ignore this module. **WARNING!!** You must backup your data before migrating -###installation -- step 1: modify migration.cfg +###Installation +- step 1: change `db_username`, `db_password`, `db_port`, `db_name` in migration.cfg - step 2: build image from dockerfile ``` cd harbor-migration @@ -12,43 +14,52 @@ Migration is a module for migrating database schema between different version of docker build -t your-image-name . ``` -###migration operation -- show instruction of harbor-migration - - ```docker run your-image-name help``` - -- test mysql connection in harbor-migration - - ```docker run -v /data/database:/var/lib/mysql your-image-name test``` - -- create backup file in `/path/to/backup` - - ``` - docker run -ti -v /data/database:/var/lib/mysql -v /path/to/backup:/harbor-migration/backup your-image-name backup - ``` - -- restore from backup file in `/path/to/backup` - - ``` - docker run -ti -v /data/database:/var/lib/mysql -v /path/to/backup:/harbor-migration/backup your-image-name restore - ``` - -- perform database schema upgrade - - ```docker run -ti -v /data/database:/var/lib/mysql your-image-name up head``` - -you can use `-v /etc/localtime:/etc/localtime` to sync container timezone with host timezone. - you may change `/data/database` to the mysql volumes path you set in docker-compose.yml. -###migration step +###Migrate Step - step 1: stop and remove harbor service ``` docker-compose down ``` -- step 2: perform migration operation -- step 3: rebuild newest harbor images and restart service +- step 2: create backup file in `/path/to/backup` + + ``` + docker run -ti -v /data/database:/var/lib/mysql -v /path/to/backup:/harbor-migration/backup migrate-tool backup + ``` + +- step 3: perform database schema upgrade + + ```docker run -ti -v /data/database:/var/lib/mysql migrate-tool up head``` + + + +- step 4: rebuild newest harbor images and restart service ``` docker-compose build && docker-compose up -d ``` + +###All migration operation +- show instruction of harbor-migration + + ```docker run migrate-tool help``` + +- test mysql connection in harbor-migration + + ```docker run -v /data/database:/var/lib/mysql migrate-tool test``` + +- create backup file in `/path/to/backup` + + ``` + docker run -ti -v /data/database:/var/lib/mysql -v /path/to/backup:/harbor-migration/backup migrate-tool backup + ``` + +- restore from backup file in `/path/to/backup` + + ``` + docker run -ti -v /data/database:/var/lib/mysql -v /path/to/backup:/harbor-migration/backup migrate-tool restore + ``` + +- perform database schema upgrade + + ```docker run -ti -v /data/database:/var/lib/mysql migrate-tool up head```