我成功部署了我的第一个 Django/Heroku 应用程序,现在我只需要传输我的数据库。它以前在 Win7 PC 上的 MySql 数据库上。我四处寻找将 csv 导入 Heroku 数据库的方法,但没有找到任何东西。他们建议使用 ruby gem 来执行此操作,或者使用taps
and this command:
heroku db:push mysql://root:mypass@localhost/mydb
。我的数据库很小,只有大约 1000 列和 2 个表,因此导入 CSV 文件非常简单,但我找不到如何去做。有谁知道?
问问题
5573 次
3 回答
5
这里有一些想法可以让你快速上手:
首先,一种快速而肮脏的方法:
- 在本地机器上安装 Postgres。
- 将 CSV 导入本地 Postgres 数据库。
- 将该数据库推送到 Heroku。
或者,一种稍微不那么快但仍然有点脏的方法:
- 使用
CSV reader
Python 模块。 - 在您的 Django 应用程序中创建一个加载 CSV 的任务,遍历每个 CSV 行,创建一个新的相应模型,如果模型有效,则将其保存在服务器的数据库中。
- 通过 heroku CLI 运行任务。
- 完成并验证服务器数据库后,您可以从存储库中删除任务和 CSV。
否则,taps
也可能适合你!
于 2012-06-19T04:01:18.603 回答
2
根据在此处输入链接描述,您可以使用复制命令将 CSV 从本地文件系统加载到 postgres 中。您应该能够将其与您的 Heroku DB 一起使用,类似于:
PGPASSWORD=密码这里 psql -h 主机名 -U 用户名 dbname -c "\copy ..."
于 2012-06-19T04:39:03.437 回答
1
您可以通过以下命令将本地 csv 文件作为表导入 heroku postgres
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 回答