pulled postgres Dockerfiles back just for migration
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/commit/a0eb24d3 Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/tree/a0eb24d3 Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/diff/a0eb24d3 Branch: refs/heads/master Commit: a0eb24d3f9a1b2181b21b72a7f08cca94c5c6425 Parents: 499bcbc Author: Dewayne Richardson <dewr...@apache.org> Authored: Fri Jan 27 13:47:10 2017 -0700 Committer: Jeremy Mitchell <mitchell...@gmail.com> Committed: Mon Jan 30 10:58:07 2017 -0700 ---------------------------------------------------------------------- .../app/db/pg-migration/Dockerfile-postgres | 29 +++++++++ .../app/db/pg-migration/Dockerfile-waiter | 24 +++++++ traffic_ops/app/db/pg-migration/migrate.sh | 66 ++++++++++++++++++++ .../app/db/pg-migration/mysql-to-postgres.env | 5 ++ traffic_ops/app/db/pg-migration/postgres.yml | 34 ++++++++++ traffic_ops/app/db/pg-migration/runwaiter.sh | 13 ++++ traffic_ops/app/db/pg-migration/waiter.yml | 24 +++++++ 7 files changed, 195 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a0eb24d3/traffic_ops/app/db/pg-migration/Dockerfile-postgres ---------------------------------------------------------------------- diff --git a/traffic_ops/app/db/pg-migration/Dockerfile-postgres b/traffic_ops/app/db/pg-migration/Dockerfile-postgres new file mode 100644 index 0000000..6f3c634 --- /dev/null +++ b/traffic_ops/app/db/pg-migration/Dockerfile-postgres @@ -0,0 +1,29 @@ +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +FROM dewrich/postgres:latest + +MAINTAINER Dan Kirkwood + +# Postgres Access +ENV POSTGRES_HOST=$POSTGRES_HOST +ENV POSTGRES_PORT=$POSTGRES_PORT +ENV POSTGRES_DATABASE=$POSTGRES_DATABASE +ENV POSTGRES_PASSWORD=$POSTGRES_PASSWORD + +# Adjust PostgreSQL configuration so that remote connections to the +# database are possible. +RUN echo "host all all 0.0.0.0/0 md5" >> $PGDATA/pg_hba.conf +RUN echo "listen_addresses='*'" >> $PGDATA/postgresql.conf + +EXPOSE "5432:5432" http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a0eb24d3/traffic_ops/app/db/pg-migration/Dockerfile-waiter ---------------------------------------------------------------------- diff --git a/traffic_ops/app/db/pg-migration/Dockerfile-waiter b/traffic_ops/app/db/pg-migration/Dockerfile-waiter new file mode 100644 index 0000000..0531c71 --- /dev/null +++ b/traffic_ops/app/db/pg-migration/Dockerfile-waiter @@ -0,0 +1,24 @@ +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +FROM dimitri/pgloader:latest + +MAINTAINER Dewayne Richardson + +RUN apt-get -y update && apt-get -y install netcat + +ENV WAITER_HOST=$WAITER_HOST +ENV WAITER_PORT=$WAITER_PORT + +ADD pg-migration/runwaiter.sh . +CMD ./runwaiter.sh http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a0eb24d3/traffic_ops/app/db/pg-migration/migrate.sh ---------------------------------------------------------------------- diff --git a/traffic_ops/app/db/pg-migration/migrate.sh b/traffic_ops/app/db/pg-migration/migrate.sh index 1b73820..a03884f 100755 --- a/traffic_ops/app/db/pg-migration/migrate.sh +++ b/traffic_ops/app/db/pg-migration/migrate.sh @@ -13,16 +13,50 @@ # limitations under the License. # +<<<<<<< HEAD +. mysql-to-postgres.env +======= : ${TO_SERVER?"Please set the TO_SERVER environment variable: ie: https://kabletown.net"} : ${TO_USER?"Please set the TO_USER environment variable: ie: <your Traffic Ops userid>"} : ${TO_PASSWORD?"Please set the TO_PASSWORD environment variable: ie: <your Traffic Ops password>"} MYSQL_PORT=3306 POSTGRES_PORT=5432 +>>>>>>> master separator="---------------------------------------" function shutdown_trafficops_database() { +<<<<<<< HEAD + docker-compose -p trafficops -f postgres.yml down +} + +function start_staging_mysql_server() { + + docker-compose -p trafficops -f mysql_host.yml up --build -d + + #Wait for postgres to come up + export WAITER_HOST=$MYSQL_HOST + export WAITER_PORT=$MYSQL_PORT + docker-compose -p trafficops -f waiter.yml up --build + + echo $separator + echo "Mysql Host is started..." + echo $separator +} + +function start_staging_postgres_server() { + docker-compose -p trafficops -f postgres.yml up --build + + #Wait for postgres to come up + export WAITER_HOST=$POSTGRES_HOST + export WAITER_PORT=$POSTGRES_PORT + docker-compose -p trafficops -f waiter.yml up --build + + echo $separator + echo "Postgres started.." + echo $separator +======= sudo systemctl stop trafficops-db } @@ -48,18 +82,49 @@ function start_staging_postgres_server() { echo $separator echo "Postgres started.." echo $separator +>>>>>>> master } function run_postgres_datatypes_conversion() { +<<<<<<< HEAD + echo $separator + echo "Starting Mysql to Postgres Migration..." + echo $separator + docker-compose -p trafficops -f convert.yml up --build +======= echo $separator echo "Starting Mysql to Postgres Migration..." echo $separator docker-compose -p trafficops -f convert.yml up --build +>>>>>>> master } function migrate_data_from_mysql_to_postgres() { +<<<<<<< HEAD + echo $separator + echo "Starting Mysql to Postgres Migration..." + echo $separator + docker-compose -p trafficops -f mysql-to-postgres.yml up --build +} + +function clean() { + echo $separator + echo "Cleaning up..." + echo $separator + docker kill trafficops_mysql_host_1 + docker-compose -p trafficops -f mysql-to-postgres.yml down --remove-orphans + docker-compose -p trafficops -f convert.yml down --remove-orphans + docker rm trafficops_mysql-to-postgres_1 + docker rm trafficops_convert_1 + docker rm trafficops_mysql_host_1 + docker rmi trafficops_mysql-to-postgres + docker rmi trafficops_convert + docker rmi trafficops_mysql_host + docker rmi mysql:5.6 + docker rmi dimitri/pgloader:latest +======= echo $separator echo "Starting Mysql to Postgres Migration..." echo $separator @@ -81,6 +146,7 @@ function clean() { docker rmi trafficops_mysql_host docker rmi mysql:5.6 docker rmi dimitri/pgloader:latest +>>>>>>> master } start_staging_mysql_server http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a0eb24d3/traffic_ops/app/db/pg-migration/mysql-to-postgres.env ---------------------------------------------------------------------- diff --git a/traffic_ops/app/db/pg-migration/mysql-to-postgres.env b/traffic_ops/app/db/pg-migration/mysql-to-postgres.env index 8f343f1..75ec909 100644 --- a/traffic_ops/app/db/pg-migration/mysql-to-postgres.env +++ b/traffic_ops/app/db/pg-migration/mysql-to-postgres.env @@ -40,3 +40,8 @@ POSTGRES_PORT=5432 POSTGRES_DATABASE=traffic_ops POSTGRES_USER=traffic_ops POSTGRES_PASSWORD=( your_new_postgres_password ) +<<<<<<< HEAD + +PGDATA=/opt/postgresql/data/pgdata +======= +>>>>>>> master http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a0eb24d3/traffic_ops/app/db/pg-migration/postgres.yml ---------------------------------------------------------------------- diff --git a/traffic_ops/app/db/pg-migration/postgres.yml b/traffic_ops/app/db/pg-migration/postgres.yml new file mode 100644 index 0000000..f68055c --- /dev/null +++ b/traffic_ops/app/db/pg-migration/postgres.yml @@ -0,0 +1,34 @@ +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +version: '2' + +services: + db: + build: + context: .. + dockerfile: pg-migration/Dockerfile-postgres + env_file: + - mysql-to-postgres.env + ports: + - 5432:5432 + volumes: + - /opt/postgresql/data/pgdata:/opt/postgresql/data/pgdata + - /var/log/postgresql:/var/log/postgresql + networks: + - default + +networks: + default: + driver: bridge + http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a0eb24d3/traffic_ops/app/db/pg-migration/runwaiter.sh ---------------------------------------------------------------------- diff --git a/traffic_ops/app/db/pg-migration/runwaiter.sh b/traffic_ops/app/db/pg-migration/runwaiter.sh new file mode 100755 index 0000000..7cf2222 --- /dev/null +++ b/traffic_ops/app/db/pg-migration/runwaiter.sh @@ -0,0 +1,13 @@ +#!/bin/bash + + +echo "WAITER_HOST: $WAITER_HOST" +echo "WAITER_PORT: $WAITER_PORT" + +for c in "$WAITER_HOST $WAITER_PORT" ; do + while true; do + echo "Waiting 3 seconds for Host and Port: $c " + sleep 3 + nc -z $c && break + done +done http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a0eb24d3/traffic_ops/app/db/pg-migration/waiter.yml ---------------------------------------------------------------------- diff --git a/traffic_ops/app/db/pg-migration/waiter.yml b/traffic_ops/app/db/pg-migration/waiter.yml new file mode 100644 index 0000000..2796737 --- /dev/null +++ b/traffic_ops/app/db/pg-migration/waiter.yml @@ -0,0 +1,24 @@ +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +version: '2' + +services: + # waits for a port to be available + waiter: + build: + context: .. + dockerfile: pg-migration/Dockerfile-waiter + environment: + - WAITER_HOST + - WAITER_PORT