Skip to content

Instantly share code, notes, and snippets.

@fiftin
Created October 5, 2015 07:04
Show Gist options
  • Save fiftin/18221054c7777e1f1207 to your computer and use it in GitHub Desktop.
Save fiftin/18221054c7777e1f1207 to your computer and use it in GitHub Desktop.
Convert PostgreSQL to SQLite
1. Dump the data only sql to file
$ pg_dump --data-only --inserts YOUR_DB_NAME > dump.sql
2. scp to local
3. Remove the SET statements at the top
such as:
SET statement_timeout = 0;
SET client_encoding = 'SQL_ASCII';
4. Remove the setval sequence queries
such as:
SELECT pg_catalog.setval('MY_OBJECT_id_seq', 10, true);
5. Replace true => ‘t’ and false => ‘f’
-- These:
INSERT INTO table_name VALUES (1, true, false);
-- Should be replace to:
INSERT INTO table_name VALUES (1, 't', 'f');
6. Add BEGIN; and END; to wrap the whole thing as a trasaction
7. Import
$ rm db/development.sqlite3
$ rake db:migrate
$ sqlite3 db/development.sqlite3
> delete from schema_migrations;
> .read dump.sql
> .exit
@hirefrank
Copy link

Thanks @equivalent and @aaronmoodie I added your suggestions to my script -- you can see them here:
hirefrank/pg-to-sqlite#1

Also @aaronmoodie 👋 it's been a long time since Etsy!

@aaronmoodie
Copy link

Oh! hey @hirefrank! 👋 I didn't realise that was you! Thanks for updating the script and for adding my suggestions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment