【问题标题】:Importing csv to heroku postgres将 csv 导入 heroku postgres
【发布时间】:2012-06-21 01:30:12
【问题描述】:

我成功部署了我的第一个 Django/Heroku 应用程序,现在我只需要传输我的数据库。它以前在 Win7 PC 上的 MySql 数据库上。我四处寻找将 csv 导入 Heroku 数据库的方法,但没有找到任何东西。他们建议使用 ruby​​ gem 来执行此操作,或使用 taps 和以下命令: heroku db:push mysql://root:mypass@localhost/mydb。 我的数据库很小,只有大约 1000 列和 2 个表,因此导入 CSV 文件非常简单,但我找不到如何去做。有谁知道吗?

【问题讨论】:

    标签: django postgresql heroku


    【解决方案1】:

    这里有一些想法可以让你快速上手:

    首先,一种快速而肮脏的方法:

    或者,一种稍微不那么快速但仍然有点脏的方法:

    • 使用CSV reader Python 模块。
    • 在您的 Django 应用程序中创建一个任务,该任务加载 CSV,遍历每个 CSV 行,创建一个新的相应模型,如果模型有效,则将其保存在服务器的数据库中。
    • 通过 heroku CLI 运行任务。
    • 完成并验证服务器数据库后,您可以从存储库中删除任务和 CSV。

    否则,taps 也可能适合你!

    【讨论】:

      【解决方案2】:

      根据enter link description here,您可以使用复制命令将 CSV 从本地文件系统加载到 postgres。您应该可以将它与您的 Heroku DB 一起使用,类似于:

      PGPASSWORD=密码这里 psql -h 主机名 -U 用户名 dbname -c "\copy ..."

      【讨论】:

        【解决方案3】:

        您可以通过以下命令将本地 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'表示该命令包含转义字符,否则将;抛出异常

        【讨论】:

          猜你喜欢
          • 2018-08-06
          • 1970-01-01
          • 2021-01-11
          • 1970-01-01
          • 1970-01-01
          • 2016-02-10
          • 2021-08-30
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多