PostgreSQL/PgLoader: Difference between revisions

From Chorke Wiki
Jump to navigation Jump to search
No edit summary
 
(10 intermediate revisions by the same user not shown)
Line 1: Line 1:
<syntaxhighlight lang="bash">
{|class='wikitable' style='width:100%;margin:-11px 0 6px 0'
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
cat << EXE | sudo bash
cat << EXE | sudo bash
apt-get update;echo
apt-get update;echo
Line 6: Line 8:
EXE
EXE
</syntaxhighlight>
</syntaxhighlight>
|valign='top' style='width:50%'|
|}


==Migration==
==Migration==
{|
{|class='wikitable mw-collapsible' style='width:100%;margin:3px 0'
|valign='top'|
!scope='col' style='text-align:left' colspan='2'|
<syntaxhighlight lang="sql">
Migration
|-
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='sql'>
cat << DDL | mariadb
cat << DDL | mariadb
CREATE DATABASE IF NOT EXISTS academia;
CREATE DATABASE IF NOT EXISTS academia;
CREATE USER 'chorke'@'%' IDENTIFIED BY 'sadaqah!';
CREATE USER 'chorke'@'%' IDENTIFIED BY 'sadaqah!';
GRANT ALL PRIVILEGES ON academia.* TO 'chorke'@'%';
GRANT ALL PRIVILEGES ON academia.* TO 'chorke'@'%';
FLUSH PRIVILEGES;
FLUSH PRIVILEGES;
DDL
DDL
</syntaxhighlight>
</syntaxhighlight>


|valign='top'|
|valign='top' style='width:50%'|
<syntaxhighlight lang="sql">
<syntaxhighlight style='margin:3px 0' lang='sql'>
cat << DDL | psql
cat << DDL | psql
CREATE DATABASE academia;
CREATE DATABASE academia;
CREATE USER chorke WITH ENCRYPTED PASSWORD 'sadaqah!';
CREATE USER chorke WITH ENCRYPTED PASSWORD 'sadaqah!';
GRANT ALL PRIVILEGES ON DATABASE academia TO chorke;
GRANT ALL PRIVILEGES ON DATABASE academia TO chorke;
ALTER DATABASE academia OWNER TO chorke;
ALTER DATABASE academia OWNER TO chorke;
DDL
DDL
</syntaxhighlight>
</syntaxhighlight>
|-
|-
|colspan='2'|
|valign='top' colspan='2'|
----
<syntaxhighlight style='margin:3px 0' lang='bash'>
|-
BKP_DATE_N_TIME="$(TZ=UTC-8 date +'%Y-%m-%dT%H%M')"
|colspan='2'|
<syntaxhighlight lang="bash">
BACKUP_DATE_N_TIME="$(date +'%Y%m%d-T%H%M')-Z$(date +'%z'|tr '+-' 'PM')"
echo -n password: ;read -s MYSQL_PWD;export MYSQL_PWD; echo
echo -n password: ;read -s MYSQL_PWD;export MYSQL_PWD; echo
# password: sadaqah!
# password: sadaqah!


mariadb      -h127.0.0.1 -P3306 -uchorke -Dacademia
mariadb      -h127.0.0.1 -P3306 -uchorke -Dacademia
mariadb-dump -h127.0.0.1 -P3306 -uchorke -Bacademia > ./academia-${BACKUP_DATE_N_TIME}.dump
mariadb-dump -h127.0.0.1 -P3306 -uchorke -Bacademia > ./academia-${BKP_DATE_N_TIME}.dump
mariadb      -h127.0.0.1 -P3306 -uchorke -Dacademia < ./academia-20241010-T1010-ZP0600.dump
mariadb      -h127.0.0.1 -P3306 -uchorke -Dacademia < ./academia-20241010-T1010-ZP0600.dump
</syntaxhighlight>
</syntaxhighlight>
|-
|-
|colspan='2'|
|valign='top' colspan='2'|
----
<syntaxhighlight style='margin:3px 0' lang='bash'>
|-
|colspan='2'|
<syntaxhighlight lang="bash">
cat <<MIG | pgloader -v /dev/stdin
cat <<MIG | pgloader -v /dev/stdin
LOAD DATABASE
LOAD DATABASE
FROM mysql://chorke:sadaqah!@localhost/academia?useSSL=false
FROM mysql://chorke:sadaqah!@localhost/academia?useSSL=false
INTO pgsql://chorke:sadaqah!@localhost/academia
INTO pgsql://chorke:sadaqah!@localhost/academia;
WITH include drop, create tables
ALTER SCHEMA 'academia' RENAME TO 'public';
MIG
MIG
</syntaxhighlight>
</syntaxhighlight>
|-
|-
|colspan='2'|
|valign='top' colspan='2'|
----
<syntaxhighlight style='margin:3px 0' lang='bash'>
|-
BKP_DATE_N_TIME="$(TZ=UTC-8 date +'%Y-%m-%dT%H%M')"
|colspan='2'|
<syntaxhighlight lang="bash">
BACKUP_DATE_N_TIME="$(date +'%Y%m%d-T%H%M')-Z$(date +'%z'|tr '+-' 'PM')"
echo -n password: ;read -s PGPASSWORD;export PGPASSWORD;echo
echo -n password: ;read -s PGPASSWORD;export PGPASSWORD;echo
# password: sadaqah!
# password: sadaqah!


psql    -h127.0.0.1 -p5432 -Uchorke -dacademia
psql    -h127.0.0.1 -p5432 -Uchorke -dacademia
pg_dump  -h127.0.0.1 -p5432 -Uchorke -dacademia | gzip > academia-${BACKUP_DATE_N_TIME}.sql.gz
pg_dump  -h127.0.0.1 -p5432 -Uchorke -dacademia | gzip > academia-${BKP_DATE_N_TIME}.sql.gz
gunzip -c academia-20241010-T1010-ZP0600.sql.gz | psql -h127.0.0.1 -p5432 -Uchorke -dacademia
gunzip -c academia-20241010-T1010-ZP0600.sql.gz | psql -h127.0.0.1 -p5432 -Uchorke -dacademia
</syntaxhighlight>
</syntaxhighlight>
|}


==Playground==
{|class='wikitable mw-collapsible' style='width:100%;margin:3px 0'
!scope='col' style='text-align:left' colspan='2'|
Playground
|-
|-
|colspan='2'|
|valign='top' style='width:50%'|
----
<syntaxhighlight style='margin:3px 0' lang='bash'>
|-
docker run --rm -it ghcr.io/dimitri/pgloader:latest pgloader -h
|valign='top'|
docker run --rm -it ghcr.io/dimitri/pgloader:latest pgloader -V
 
</syntaxhighlight>
|valign='top'|
 
|}


==Playground==
|valign='top' style='width:50%'|
{|
<syntaxhighlight style='margin:3px 0' lang='bash'>
|valign='top'|
<syntaxhighlight lang="bash">
pgloader -h
pgloader -h
pgloader -V
pgloader -V
</syntaxhighlight>
</syntaxhighlight>
|valign='top'|
|valign='top'|
|-
|-
|colspan='3'|
|valign='top' colspan='2'|
----
<syntaxhighlight style='margin:3px 0' lang='bash'>
pgloader ./sqlite/academia.db pgsql:///academia
pgloader ./sqlite/academia.db pgsql://chorke:sadaqah!@localhost/academia
</syntaxhighlight>
|-
|valign='top' colspan='2'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
pgloader mysql://chorke:sadaqah!@localhost/academia pgsql:///academia
pgloader mysql://chorke:sadaqah!@localhost/academia pgsql://chorke:sadaqah!@localhost/academia
</syntaxhighlight>
|-
|-
|valign='top'|
|valign='top'|
 
<syntaxhighlight style='margin:3px 0' lang='bash'>
|valign='top'|
cat <<MIG | pgloader -v /dev/stdin
 
LOAD DATABASE
FROM mysql://chorke:sadaqah!@localhost/academia?useSSL=false
INTO pgsql://chorke:sadaqah!@localhost/academia
WITH include drop, create tables
ALTER SCHEMA 'academia' RENAME TO 'public';
MIG
</syntaxhighlight>
|valign='top'|
|valign='top'|
|}
|}


== References==
==References==
{|
{|class='wikitable mw-collapsible' style='width:100%;margin:3px 0'
|valign="top"|
!scope='col' style='text-align:left' colspan='3'|
References
|-
|valign='top' style='width:33%'|
* [https://www.digitalocean.com/community/tutorials/how-to-migrate-mysql-database-to-postgres-using-pgloader PostgreSQL » PgLoader » Migrate From MySQL]
* [https://www.digitalocean.com/community/tutorials/how-to-migrate-mysql-database-to-postgres-using-pgloader PostgreSQL » PgLoader » Migrate From MySQL]
* [[PostgreSQL/PgBouncer|PostgreSQL » PgBouncer]]
* [[PostgreSQL/PgBouncer|PostgreSQL » PgBouncer]]
Line 117: Line 122:
* [[PostgreSQL]]
* [[PostgreSQL]]


|valign="top"|
|valign='top' style='width:34%'|


|valign="top"|
|valign='top' style='width:33%'|


|-
|-
|colspan="3"|
|valign='top'|
----
|-
|valign="top"|
* [[Academia JavaEE Workspace in Ubuntu]]
* [[Academia JavaEE Workspace in Ubuntu]]
* [[IntelliJ IDEA]]
* [[IntelliJ IDEA]]
Line 137: Line 139:
* [[K8s]]
* [[K8s]]


|valign="top"|
|valign='top'|
* [[K8s/Swiss Knife|K8s » Swiss Knife]]
* [[K8s/Swiss Knife|K8s » Swiss Knife]]
* [[K8s/Ingress|K8s » Ingress]]
* [[K8s/Ingress|K8s » Ingress]]
Line 143: Line 145:
* [[K8s/Run|K8s » Run]]
* [[K8s/Run|K8s » Run]]


|valign="top"|
|valign='top'|
 
|}
|}

Latest revision as of 01:11, 16 January 2026

cat << EXE | sudo bash
apt-get update;echo
apt list -a --upgradable
apt-get install -y pgloader
EXE

Migration

Migration

cat << DDL | mariadb
CREATE DATABASE IF NOT EXISTS academia;
CREATE USER 'chorke'@'%' IDENTIFIED BY 'sadaqah!';
GRANT ALL PRIVILEGES ON academia.*  TO 'chorke'@'%';
FLUSH PRIVILEGES;
DDL
cat << DDL | psql
CREATE DATABASE academia;
CREATE USER chorke WITH ENCRYPTED PASSWORD  'sadaqah!';
GRANT ALL PRIVILEGES ON DATABASE academia TO chorke;
ALTER DATABASE academia OWNER TO chorke;
DDL
BKP_DATE_N_TIME="$(TZ=UTC-8 date +'%Y-%m-%dT%H%M')"
echo -n password: ;read -s MYSQL_PWD;export MYSQL_PWD; echo
# password: sadaqah!

mariadb      -h127.0.0.1 -P3306 -uchorke -Dacademia
mariadb-dump -h127.0.0.1 -P3306 -uchorke -Bacademia > ./academia-${BKP_DATE_N_TIME}.dump
mariadb      -h127.0.0.1 -P3306 -uchorke -Dacademia < ./academia-20241010-T1010-ZP0600.dump
cat <<MIG | pgloader -v /dev/stdin
LOAD DATABASE
FROM mysql://chorke:sadaqah!@localhost/academia?useSSL=false
INTO pgsql://chorke:sadaqah!@localhost/academia;
MIG
BKP_DATE_N_TIME="$(TZ=UTC-8 date +'%Y-%m-%dT%H%M')"
echo -n password: ;read -s PGPASSWORD;export PGPASSWORD;echo
# password: sadaqah!

psql     -h127.0.0.1 -p5432 -Uchorke -dacademia
pg_dump  -h127.0.0.1 -p5432 -Uchorke -dacademia | gzip > academia-${BKP_DATE_N_TIME}.sql.gz
gunzip -c academia-20241010-T1010-ZP0600.sql.gz | psql -h127.0.0.1 -p5432 -Uchorke -dacademia

Playground

Playground

docker run --rm -it ghcr.io/dimitri/pgloader:latest pgloader -h
docker run --rm -it ghcr.io/dimitri/pgloader:latest pgloader -V
pgloader -h
pgloader -V
pgloader ./sqlite/academia.db pgsql:///academia
pgloader ./sqlite/academia.db pgsql://chorke:sadaqah!@localhost/academia
pgloader mysql://chorke:sadaqah!@localhost/academia pgsql:///academia
pgloader mysql://chorke:sadaqah!@localhost/academia pgsql://chorke:sadaqah!@localhost/academia
cat <<MIG | pgloader -v /dev/stdin
LOAD DATABASE
FROM mysql://chorke:sadaqah!@localhost/academia?useSSL=false
INTO pgsql://chorke:sadaqah!@localhost/academia
WITH include drop, create tables
ALTER SCHEMA 'academia' RENAME TO 'public';
MIG

References

References