We're working on a website, and when we develop locally (one of us from Windows), we use sqlite3, but on the server (linux) we use postgres. We'd like to be able to import the production database into our development process, so I'm wondering if there is a way to convert from a postgres database dump to something sqlite3 can understand (just feeding it the postgres's dumped SQL gave many, many errors). Or would it be easier just to install postgres on windows? Thanks.
问题:
回答1:
There are some converter tools around:
http://sqlite.com/cvstrac/wiki?p=ConverterTools
Would it be easier just to install postgres on windows?
Probably, and doing so is very straightforward.
回答2:
I found this blog entry which guides you to do these steps:
Create a dump of the PostgreSQL database.
ssh -C username@hostname.com pg_dump --data-only --inserts YOUR_DB_NAME > dump.sql
Remove/modify the dump.
- Remove the lines starting with
SET
- Remove the lines starting with
SELECT pg_catalog.setval
- Replace true for ‘
t
’ - Replace false for ‘
f
’
- Remove the lines starting with
Add
BEGIN;
as first line andEND;
as last lineRecreate an empty development database.
bundle exec rake db:migrate
Import the dump.
sqlite3 db/development.sqlite3 sqlite> delete from schema_migrations; sqlite> .read dump.sql
Of course connecting via ssh and creating a new db using rake are optional
回答3:
STEP1: make a dump of your database structure and data
pg_dump --create --inserts -f myPgDump.sql -d myDatabaseName -U myUserName -W myPassword
STEP2: delete everything except CREATE TABLES and INSERT statements out of myPgDump.sql (using text editor)
STEP3: initialize your SQLite database passing structure and data of your Postgres dump
sqlite3 myNewSQLiteDB.db -init -myPgDump.sql
STEP4: use your database ;)
回答4:
It was VERY easy for me to do using the taps gem as described here: http://railscasts.com/episodes/342-migrating-to-postgresql
And I've started using the Postgres.app on my Mac (no install needed, drop the app in your Applications directory, although might have to add one line to your PATH envirnment variable as described in the documentation), with Induction.app as a GUI tool to view/query the database.