Я настраиваю приложение Django на Heroku и мне нужно конвертировать из базы данных sqlite3 db в postgresql.К сожалению, я использую общую базу данных и поэтому не могу получить прямой доступ к оболочке db с помощью psql, а также не могу выполнить команду 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())
(По большей части это довольно маленькие файлы (не более 131 КБ).
И я получаю ту же ошибку (в дополнение к большому огорчению из-за того, что я не смог уйти должным образом - сколько нужно обратных слешей?)
Итак, какой самый простой способ COPY
к postgresql в оболочке Django?Я думал, что это будет так же просто, как обслуживание строки вместо ссылки на файл.