Я пытаюсь использовать команду \ copy из POSTGRES, используя laravel 5.5, чтобы вставить большой файл в БД, но я получаю эту ошибку ниже.
Я пробовал так:
DB::statement( DB::raw("\\copy requisicoes FROM '".$file1."' WITH DELIMITER ','"));
Получите эту ошибку:
SQLSTATE [42601]: Синтаксическая ошибка: 7 ОШИБКА: синтаксическая ошибка в или рядом с "\" LINE 1: \ copy Requisicoes FROM '/ srv / www / bilhetagem_logs / bilhetagem _... ^ (SQL: \ copy Requisicoes FROM' / srv / www / bilhetagem_logs / bilhetagem_log1_2018-10-29 'С РАЗДЕЛИТЕЛЕМ', ')
Пробовал тоже так:
DB::statement( DB::raw('\copy requisicoes FROM \''.$file1.'\' WITH DELIMITER \',\''));
Получите эту ошибку:
SQLSTATE [42601]: Синтаксическая ошибка: 7 ОШИБКА: синтаксическая ошибка в или рядом с "\" LINE 1: \ copy Requisicoes FROM '/ srv / www / bilhetagem_logs / bilhetagem _... ^ (SQL: \ copy Requisicoes FROM' / srv / www / bilhetagem_logs / bilhetagem_log1_2018-10-29 'С РАЗДЕЛИТЕЛЕМ', ')
Если я выполню команду, которая возвращает ошибку, описанную выше, с помощью команды psql line, то все будет нормально
\copy requisicoes FROM '/srv/www/bilhetagem_logs/bilhetagem_log1_2018-10-29' WITH DELIMITER ','
Может ли кто-нибудь мне помочь? :)
Я должен использовать \ copy вместо копии, потому что у меня нет привилегий суперпользователя на БД.
https://www.postgresql.org/docs/9.2/static/sql-copy.html
Копирование имен файлов разрешено только суперпользователям базы данных, поскольку оно позволяет читать или записывать любой файл, к которому у сервера есть права доступа.