最初のDjango/Herokuアプリを正常にデプロイしましたが、データベースを転送するだけで済みます。以前は、Win7PCのMySqlデータベースにありました。csvをHerokudbにインポートする方法を探しましたが、何も見つかりませんでした。彼らはそれを行うためにrubygemを使用するかtaps
、次のコマンドを使用することを提案しています
heroku db:push mysql://root:mypass@localhost/mydb
。私のデータベースは非常に小さく、約1000列と2つのテーブルしかないため、CSVファイルをインポートするのは非常に簡単ですが、その方法がわかりません。誰もが知っていますか?
質問する
5573 次
3 に答える
5
非常に迅速に進めるためのいくつかのアイデアを次に示します。
まず、迅速で汚いアプローチ:
- ローカルマシンにPostgresをインストールします。
- CSVをローカルのPostgresデータベースにインポートします。
- そのデータベースをHerokuにプッシュします。
または、少し遅く、まだ少し汚いアプローチ:
CSV reader
Pythonモジュールを使用します。- Djangoアプリで、CSVを読み込み、各CSV行を繰り返し処理し、対応する新しいモデルを作成し、モデルが有効な場合はサーバーのデータベースに保存するタスクを作成します。
- herokuCLIを介してタスクを実行します。
- 終了してサーバーデータベースを確認したら、リポジトリからタスクとCSVを削除できます。
そうでなければ、あなたにtaps
も似合うかもしれません!
于 2012-06-19T04:01:18.603 に答える
2
ここにリンクの説明を入力するように、copyコマンドを使用して、ローカルファイルシステムからpostgresにCSVをロードできます。これは、HerokuDBで次のようなもので使用できるはずです。
PGPASSWORD = passwordhere psql -h hostname -U username dbname -c "\ copy ..."
于 2012-06-19T04:39:03.437 に答える
1
以下のコマンドを使用して、ローカルcsvファイルをherokupostgresのテーブルとしてインポートできます。
PGPASSWORD=<your password> psql -h <your heroku host> -U <heroku user> <heroku postgres database name> -c "\copy bank (ifsc, bank_id, branch, address, city, district, state, bank_name) FROM '<local file path location>' CSV HEADER DELIMITER E'\t';"
必要に応じてDELIMITER値を変更してください。区切り文字の前の「E」は、コマンドにエスケープ文字が含まれていることを示します。含まれていない場合は、エスケープ文字が含まれます。例外をスローする
于 2019-08-13T07:12:33.553 に答える