Skip to content

Instantly share code, notes, and snippets.

@raczajko
Last active February 10, 2018 20:56
Show Gist options
  • Save raczajko/251c48eea869635b9b5bd37b6a3a02fb to your computer and use it in GitHub Desktop.
Save raczajko/251c48eea869635b9b5bd37b6a3a02fb to your computer and use it in GitHub Desktop.
##1. Creamos el dump de la BD MySQL
mysqldump -u user -p <db> > <db>.sql
##copiamos a la vm donde haremos el cambio
scp <db>.sql <user>@192.168.1.254:/home/<user>/
##2. Instalamos docker
echo "Descargando DOCKER...."
curl -fsSL https://get.docker.com/ | sh
sudo service docker start
sudo usermod -aG docker $(whoami)
### Hecho esto reiniciamos la VM donde acabamos de instalar docker para que el usuario con el que instalamos tenga permisos sobre el servicio
##3. Corremos la imagen:
## Al salir del contenedor la imagen se autodestruira, solo la usaremos para convertir
docker run -it --rm sameersbn/mysql2psql:latest bash
##3. Dentro del contenedor (una vez que termine de correr el comando anterior nos dejara sobre bash del contenedor)
##Instalacion de mariadb en el contenedor
DEBIAN_FRONTEND=noninteractive apt-get update && apt-get -q -y install mariadb-server
##Desde otra ventana listamos los contenedores activos
docker ps
##Y copiamos el archivo sql al contenedor
docker cp <db>.sql <contenedor>:/root/
##4. Volvemos a la ventana con el contenedor y Ejecutamos:
/etc/init.d/mysql start
mysql -u root -p -e “create database <db>";
##Si tenemos algun user en la bd como propietario lo creamos:
mysql -u root -p -e "create user 'user'@'localhost'";
mysql -u root -p -e "GRANT ALL on <db>.* to 'user'@'localhost'";
##Restauramos el backup de la BD
mysql -u root -p <db> < /root/<db>.sql
##4. Creamos el archivo /root/mysql2psql.yml, con el siguiente contenido:
##########################################################
mysql:
hostname: localhost
port: 3306
socket: /run/mysqld/mysqld.sock
username: root
password:
database: <db>
encoding: utf8
destination:
file: /root/<db>-postgresdump.sql
##########################################################
##5. Corremos el comando para convertir
cd ~ && mysql2psql
##6. Desde la otra ventana copiamos el dump fuera del contenedor:
docker cp <contenedor>:/root/<db>-postgresdump.sql .
##7. En la ventana del contenedor escribimos exit para salir.
##8.Restauramos la BD migrada:
psql -U postgres --dbname <db> -f <db>.sql
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment