Импортирование дампа SQLite3 обратно в базу данных - PullRequest
33 голосов
/ 22 ноября 2008

Я чувствую, что это глупый вопрос, потому что это похоже на здравый смысл. , , но ни один поиск в Google, который я могу собрать, кажется, не может дать мне ответ!

Я знаю, как получить данные OUT базы данных sqlite3 с помощью команды .dump. Но теперь, когда у меня есть этот файл ASCII под названием export.sqlite3.sql. , , Я не могу вернуть его обратно в базу данных, которую я хочу.

Моя цель состояла в том, чтобы перенести данные, которые у меня были в одном приложении rails, в другое, чтобы мне не пришлось снова и снова создавать фиктивные данные. , , поэтому я сбросил данные из моего первого приложения, избавился от всех операторов CREATE TABLE и убедился, что моя схема во втором приложении совпадает. , , теперь я просто должен получить это там.

Кто-нибудь может помочь мне? И когда вы найдете способ, вы скажете мне, что вы подключили к Google, потому что я сейчас бью свою голову открытой ложкой по тому, что я думал, будет легко найти.

Ответы [ 4 ]

58 голосов
/ 22 ноября 2008
45 голосов
/ 30 января 2009

Вы не указали свою операционную систему и пока

sqlite3 my_database.sqlite < export.sqlite3.sql

будет работать для Unix-версий, не будет работать для Windows.

Инверсией команды .dump является команда .read. Синтаксис будет

sqlite3> .read export.sqlite3.sql
2 голосов
/ 05 июня 2009

Это также должно работать:

echo '.read export.sqlite3.sql' | sqlite3 my_database.sqlite3

Одним из возможных преимуществ перед "sqlite3 my_database.sqlite3 < export.sqlite3.sql" является то, что команда SQLite .read может (сейчас или в будущем) быть более продвинутой, чем просто "прочитать весь текст и выполнить его". Это может сделать пакетирование, которое уменьшит использование памяти для больших дампов. Я признаю, однако, что это довольно неясное и маловероятное преимущество. По всей вероятности, .read просто читает каждую строку из ввода и выполняет ее, точно так же, как операторы перенаправления и конвейера.

0 голосов
/ 23 октября 2013

Используйте это для вкусов Unix.

нажмите Ctrl + Alt + T и напишите

sqlite3 /home/ubuntu/output.sqlite < /home/ubuntu/input.sql

Восстановление базы данных из входного файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...