Sign inSign up

chulinx/pgloader

By chulinx

•Updated over 4 years ago

Image
0

99

chulinx/pgloader repository overview

  • Dockerfile
FROM robbash/pgloader:amd64
COPY mysql2pg.load.tmpl /
COPY entrypoint.sh /
  • entrypoint.sh
#!/bin/bash
function helper(){
   echo "entrypoint.sh [db_name] [mysql_ip] [pg_ip] [mysql_port] [pg_port]"
   exit 2
}
test $1 || helper
test $2 || helper
test $3 || helper
test $4 && mysql_port=$4 || mysql_port=3306
test $5 && pg_port=$5 || pg_port=54321
sed -i s/db_operation/$1/g /mysql2pg.load.tmpl
sed -i s/10.229.5.110/$2/g /mysql2pg.load.tmpl
sed -i s/10.206.230.35/$3/g /mysql2pg.load.tmpl

if [ "$mysql_port" -ne 3306 ];then
   sed -i s/$mysql_port/3306/ /mysql2pg.load.tmpl
fi

if [ "$pg_port" -ne 54321 ];then
   sed -i s/$mysql_port/54321/ /mysql2pg.load.tmpl
fi

cp /mysql2pg.load.tmpl /mysql2pg.load
cat /mysql2pg.load
pgloader /mysql2pg.load

  • mysql2pg.load.tmpl
LOAD DATABASE
 FROM mysql://root:[email protected]:3306/db_operation
 INTO pgsql://system:[email protected]:54321/db_operation

 WITH include drop, create tables, create indexes,schema only, workers = 8, concurrency = 1

    CAST type datetime to timestamp drop default drop not null using zero-dates-to-null

ALTER SCHEMA 'taas_core' RENAME TO 'public';

- migrate.sh

```bash
mysql_ip=10.229.4.146
pg_ip=10.206.230.35
for i in `mysql -uroot -pxxxx -h $mysql_ip -e "show databases"|grep "db_"`
do
   /opt/kingbase/ClientTools/bin/ksql -U system  test -l -d $i >>/dev/null 2>&1
   if [ $? -ne 0 ];then
       /opt/kingbase/ClientTools/bin/ksql -U system  test -w --command  "create database $i"
   fi
   docker run -i --rm chulinx/pgloader:v0.3 sh entrypoint.sh $i $mysql_ip $pg_ip
   sleep 5
done

Tag summary

Content type

Image

Digest

Size

85.1 MB

Last updated

over 4 years ago

docker pull chulinx/pgloader:v0.3