web-dev-qa-db-ja.com

SQLite3ダンプをインポートしてデータベースに戻す

これは常識のように見えるので、これはばかげた質問のように感じます。 。 。しかし、私がまとめることができるグーグル検索は私に答えを与えることができないようです!

.dumpコマンドを使用してsqlite3データベースからデータを取得する方法を知っています。しかし、今ではexport_sqlite3.sqlというタイトルのこのASCIIファイルがあります。 。 。必要なデータベースに戻すことができないようです。

私の目標は、あるRailsアプリにあったデータを別のアプリに転送することでした。そのため、ダミーデータを作成するためにあらゆる時間を費やす必要はありませんでした。 。 。最初のアプリからデータをダンプし、すべてのCREATE TABLEステートメントを削除し、2番目のアプリのスキーマが一致することを確認しました。 。 。今私はそこにそれを取得する必要があります。

誰か助けてくれませんか?そして、あなたが道を見つけるとき、あなたがグーグルに差し込んだものを教えてもらえますか?.

35
BushyMark
cat dumpfile.sql | sqlite3 my_database.sqlite

これは、sqlite3入門ガイドから変更されています。

59
Ali Afshar

オペレーティングシステムを指定しておらず、

sqlite3 my_database.sqlite < export.sqlite3.sql

uNIXフレーバーでは機能しますが、Windowsでは機能しません。

.dumpコマンドの逆は.readコマンドです。構文は次のようになります

sqlite3> .read export.sqlite3.sql
48
Noah

これも動作するはずです:

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

sqlite3 my_database.sqlite3 < export.sqlite3.sql "は、SQLiteの.readコマンドは(現在または将来)単に「すべてのテキストを読んで実行する」よりも高度な場合があります。バッチ処理を行う可能性があります。これにより、大きなダンプのメモリ使用量が削減されます。しかし、これはかなりあいまいでありそうもない利点であることを認めます。おそらく、.readは、リダイレクトおよびパイプ演算子のように、入力から各行を読み取り、実行するだけです。

2
James A. Rosen