Как преобразовать базу данных postgres в sqlite
мы работаем над веб-сайтом, и когда мы разрабатываем локально (один из нас из Windows), мы используем sqlite3, но на сервере (linux) мы используем postgres. Мы хотели бы иметь возможность импортировать производственную базу данных в наш процесс разработки, поэтому мне интересно, есть ли способ конвертировать из дампа базы данных postgres в то, что может понять sqlite3 (просто подавая его, сброшенный SQL postgres дал много, много ошибок). Или было бы проще просто установить postgres на windows? Спасибо.
4 ответов
есть некоторые инструменты конвертер вокруг:
http://sqlite.com/cvstrac/wiki?p=ConverterTools
было бы проще просто установить postgres на windows?
вероятно, и делать это очень просто.
нашел запись в блоге, который поможет вам сделать следующие действия:
-
создайте дамп базы данных PostgreSQL.
ssh -C username@hostname.com pg_dump --data-only --inserts YOUR_DB_NAME > dump.sql
-
Удалить/Изменить дамп.
- удалить строки, начинающиеся с
SET
- удалить строки, начинающиеся с
SELECT pg_catalog.setval
- заменить true на'
t
’ - заменить false для ‘
f
’
- удалить строки, начинающиеся с
добавить
BEGIN;
как первая строка иEND;
в последней строкевоссоздать пустую базу данных разработки.
bundle exec rake db:migrate
-
импортировать дамп.
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 для просмотра / запроса базы данных.