FROM robbash/pgloader:amd64
COPY mysql2pg.load.tmpl /
COPY 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
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
Content type
Image
Digest
Size
85.1 MB
Last updated
over 4 years ago
docker pull chulinx/pgloader:v0.3