Easy to use solution to create sqlite database from postgresql dump.
- default
pg_dumpscript format - as fast as possible
- silently ignore unsupported postgresql features
- gzip support
In release section you can download pre-built version of pg2sqlite.jar
-
Install jre (java) on your PC
-
Create dump from postgresql database
pg_dump -h host -U user -f database.dump database- Make sqlite database from it
java -jar pg2sqlite-1.0.3.jar -d database.dump -o sqlite.db
pg2sqlite -d <file> -o <file> [-f <true|false>]
- -d
<file>- file that contains dump of postgresql database (made by pg_dump, accepts .gz) - -o
<file>- file name of newly created sqlite3 database - -f
<true|false>- default: false, force database re-creation if database file alredy exists - -t
<integer|text|real>- default: integer, change sqlite3 date class (read below)
SQLite does not have a storage class set aside for storing dates and/or times. Instead, the built-in Date And Time Functions of SQLite are capable of storing dates and times as TEXT, REAL, or INTEGER values:
- TEXT as ISO8601 strings ("YYYY-MM-DD HH:MM:SS.SSS").
- REAL as Julian day numbers, the number of days since noon in Greenwich on November 24, 4714 B.C. according to the proleptic Gregorian calendar.
- INTEGER as Unix Time, the number of seconds since 1970-01-01 00:00:00 UTC.
By default pg2sqlite uses INTEGER to store dates, but you can change this with -t argument (-t text or -t real), use it like this:
java -jar pg2sqlite-1.0.3.jar -d database.dump -o sqlite.db -t textpg2sqlite does not support database schemas. If your dump file includes schema definition It will print errors like this:
Create Table - Exception:
unknown database <schema>
[SQL] 'CREATE TABLE <schema>.table (...;'
You can easily fix dump file with sed:
# sed 's/<schema name>\.//' -i database.dump
sed 's/public\.//' -i database.dump
pg2sqlite -d output.dump -o sqlite.dbWhere public is a schema name.
git clone https://github.com/caiiiycuk/postgresql-to-sqlite.git
cd postgresql-to-sqlite
sbt one-jar
cp target/scala-2.11/postgresql-to-sqlite_2.11-0.0.1-SNAPSHOT-one-jar.jar pg2sqlite.jarClone the repository and run
docker build -t postgresql-to-sqlite:latest .
inside the postgresql-to-sqlite folder.
Use
docker run -v /home/john/dbdata:/dbdata -e psource='/dbdata/pqdump.sql' -e starget='/dbdata/output.sqlite' -it postgresql-to-sqlite:latest
where
- -v: is the volume where the pqdump file is located. (and later the output file)
- -e:
psourceis the pqdump filename and folder &stargetthe sqlite filename and folder
p.s. the schema removal has to be done outside the container
If you appreciate this project, please consider voting for it on Stack Overflow: