Выполнение не удалось на sql: вставьте фрейм данных на сервер postgresql - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь подключиться к серверу postgresql и вставить в таблицу некоторый кадр данных, и это мой код

import datetime
import gzip
import logging
import os
import sys
import traceback
import numpy as np
import pandas as pd
import psycopg2
from pandas.io.sql import SQLTable, pandasSQL_builder
from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT
from sqlalchemy import create_engine

c = psycopg2.connect(database="dc_integration", user="mastername", 
host="integrationdb.c46zksctipg7.ap-southeast-1.rds.amazonaws.com", 
password="xxx")

d = {'project_key': [1, 2], 'project_name': [3, 4], 'update_date': 
['2016-06-22 19:10:28','2016-06-22 19:10:15']}
df = pd.DataFrame(data=d)
df.to_sql('project', con=c)

Но я получаю эту ошибку

DatabaseError: Execution failed on sql 'SELECT name FROM sqlite_master WHERE type='table' AND name=?;': relation "sqlite_master" does not exist
LINE 1: SELECT name FROM sqlite_master WHERE type='table' AND name=?...

Но я могу прочитатьданные из табл.Я не знаю, почему это не получается.

1 Ответ

0 голосов
/ 11 февраля 2019

Я думаю, что вы должны задать свой search_path для схемы, в которой находится ваша таблица.

С помощью:

ALTER USER username SET search_path = schema;

В PostgreSQL.

Или установите ваш search_path в параметрах psycorg2.connect:

search_path=schema

...