Как преобразовать базу данных postgres в sqlite

мы работаем над веб-сайтом, и когда мы разрабатываем локально (один из нас из Windows), мы используем sqlite3, но на сервере (linux) мы используем postgres. Мы хотели бы иметь возможность импортировать производственную базу данных в наш процесс разработки, поэтому мне интересно, есть ли способ конвертировать из дампа базы данных postgres в то, что может понять sqlite3 (просто подавая его, сброшенный SQL postgres дал много, много ошибок). Или было бы проще просто установить postgres на windows? Спасибо.

4 ответов


есть некоторые инструменты конвертер вокруг:

http://sqlite.com/cvstrac/wiki?p=ConverterTools

было бы проще просто установить postgres на windows?

вероятно, и делать это очень просто.


нашел запись в блоге, который поможет вам сделать следующие действия:

  1. создайте дамп базы данных PostgreSQL.

    ssh -C username@hostname.com pg_dump --data-only --inserts YOUR_DB_NAME > dump.sql
    
  2. Удалить/Изменить дамп.

    1. удалить строки, начинающиеся с SET
    2. удалить строки, начинающиеся с SELECT pg_catalog.setval
    3. заменить true на't
    4. заменить false для ‘f
  3. добавить BEGIN; как первая строка и END; в последней строке

  4. воссоздать пустую базу данных разработки. bundle exec rake db:migrate

  5. импортировать дамп.

    sqlite3 db/development.sqlite3
    sqlite> delete from schema_migrations;
    sqlite> .read dump.sql
    

конечно, подключение через ssh и создание новой БД с помощью rake являются необязательными


Шаг 1: Сделайте дамп структуры базы данных и данных

pg_dump --create --inserts -f myPgDump.sql -d myDatabaseName -U myUserName -W myPassword

Шаг 2: Удалите все, кроме создания таблиц и вставки операторов из myPgDump.SQL (с помощью текстового редактора)

Шаг 3: инициализируйте структуру передачи базы данных SQLite и данные вашего дампа Postgres

sqlite3 myNewSQLiteDB.db -init -myPgDump.sql

STEP4: используйте свою базу данных;)


Мне было очень легко сделать с помощью кранов gem, как описано здесь: http://railscasts.com/episodes/342-migrating-to-postgresql

и я начал использовать Postgres.приложение на моем Mac (не требуется установка, удалите приложение в каталоге приложений, хотя, возможно, придется добавить одну строку в переменную окружения пути, как описано в документации), с индукцией.app как инструмент GUI для просмотра / запроса базы данных.