どのようにしてレールsqlite3 dbのデータをファイルに抽出できますか?rails dbをJSONファイルに抽出する
私は私が私のデータベースをリセットする場合ので、私は後でそれを再ロードすることができ、私のデータベース内のすべてのデータを抽出したい、または私はデシベルの異なるタイプに切り替えると、レール4
を使用しています。
どのようにしてレールsqlite3 dbのデータをファイルに抽出できますか?rails dbをJSONファイルに抽出する
私は私が私のデータベースをリセットする場合ので、私は後でそれを再ロードすることができ、私のデータベース内のすべてのデータを抽出したい、または私はデシベルの異なるタイプに切り替えると、レール4
を使用しています。
"yaml_db" gemを使用してください。他のデータベースにデータをロードするデータ (データはダンプ後別々のファイルに格納されている) と
rake db:data:load
をダンプするhttps://github.com/ludicast/yaml_db
rake db:data:dump
データベースのDBダンプファイルを作成し、必要に応じて使用するだけです。
これはストレートSqlite3 Helpからである 、あなたがdb/development.sqlite3
のためのデータベースをダンプすると仮定:
は、ダンプファイルを作成するには、次の単一のASCIIテキストファイルにデータベース の内容全体を変換するために、「
.dump
」コマンドを使用します。このファイルは、データベースに変換され、sqlite3にパイプすることで戻すことができます。
echo '.dump' | sqlite3 db/development.sqlite3 | gzip -c > dev.dump.gz
は、ダンプ・ファイルを復元するには:
zcat dev.dump.gz | sqlite3 development.sqlite3
ダンプで 'sh.exe ':sqlite3:コマンドが見つかりませんでした' – Nayish
リモートマシンを操作していないのですが、 'sqlite3'は現在のRailsプロジェクトディレクトリあなたのプロジェクトでそれを使用している場合 – kiddorails
ローカルマシンを操作すると、sqlite3は私の現在のRailsプロジェクトの宝石です... – Nayish
は、私は完全に.dump
の代わりに、JSON形式のダンプを生成するに同意します。好奇心のためだけに、私はすべてのモデルをjsonに変換するスクリプトを書いた。
Rails.application.eager_load! # To load all models app/models/**/*.rb
all_records = ActiveRecord::Base.descendants.map &:all
all_records.to_json
しかし、実際の環境では多くのレコードで実行するには時間がかかるでしょう。 SQLite3のよう
(私はこのような場合のためにお勧めします)もう一つの方法はちょうどdb/development.sqlite3.backup
にファイルdb/development.sqlite3
をコピーし、ファイルのみです。それを回復するには、cp -f db/development.sqlite3.backup db/development.sqlite3
をコピーしてください。 .dump
は、insertsおよびcreatesステートメントでASCIIテキストファイルを生成します。レコードを複製しようとするため、抽出されたデータベースでは回復できません。
これはjavascriptやsqlite3コマンドを使用するよりもはるかに優れています。 – Subhas
私はJSONに全てのDBを抽出するために使用ユーザーフレンドリーなphpmyadminエクスポートを使用します。それは簡単にあなたのデータベースのjsonデータをエクスポートを作成します。これがあなたを助けることを望みます。
後藤phpmyadminの
エクスポート/タイプJSON
することはでき、簡単な書き込み種子におけるこのライン。RBここPost
File.open("post.json", "w") { |f| f.write Post.all.to_json }
は、お使いのモデルの名前に置き換えてください。 端末で実行する:
rake db:seed
なぜ単にdb dumpを取得しないのですか? – kiddorails
どうすればいいですか? – Nayish
答えは – kiddorails