gpt4 book ai didi

python - 在 Python/Django 中从 STDIN 复制到 POSTGRESQL(在 Heroku 上)

转载 作者:行者123 更新时间:2023-11-29 12:06:32 25 4
gpt4 key购买 nike

我正在 Heroku 上设置 Django 应用程序,需要将 sqlite3 数据库后端转换为 postgresql。不幸的是,我使用的是共享数据库,因此无法使用 psql 直接访问 db shell,也无法对文件执行 COPY 命令。

例如,这不起作用:

from django.db import connection, transaction
cursor = connection.cursor()
cursor.execute("copy table_name from 'table_dump.dmp' delimiters ',' csv;")

我收到这个错误:

DatabaseError: must be superuser to COPY to or from a file
HINT: Anyone can COPY to stdout or from stdin. psql's \copy command also works for anyone.

所以我尝试将文件作为字符串读入 COPY 命令,如下所示:

cursor.execute("copy tabe_name from '%s' delimiters ',' csv header;" % f.read())

(大多数情况下,这些是最大 131kb 的非常小的文件。)

而且我得到了同样的错误(除了因为没有正确转义我的 ' 而带来的很多悲伤之外——我需要多少反斜杠?)

那么,在 Django shell 中COPY 到 postgresql 的最简单方法是什么?我认为它会像提供字符串而不是文件引用一样简单。

最佳答案

是否可以只使用

heroku db:push

http://devcenter.heroku.com/articles/taps

关于python - 在 Python/Django 中从 STDIN 复制到 POSTGRESQL(在 Heroku 上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8931089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com