la relación no existe en postgreSQL pero ya existe
He leído muchos artículos sobre mi problema pero nadie lo resuelve. Entonces puedes ver mi código aquí
DATABASE_URL = os.environ.get('url_de_mi_db')
con = None
try:
con = psycopg2.connect(DATABASE_URL)
cur = con.cursor()
print('Versión de la base de datos de PostgreSQL:')
# cur.execute('SELECT version()')
# cur.execute('SELECT * FROM qwerty')
# cur.execute(sql.SQL('SELECT * FROM {}').format(sql.Identifier('qwerty')))
# cur.execute(sql.SQL("INSERT INTO {} (chat_id, username, created_on) VALUES (8985972942, vovakirdan, 2022-01-05)").format(sql.Identifier('users')))
cur.execute("""INSERT INTO users (chat_id, username, created_on)
VALUES (3131,
vovakirdan,
2022-01-05)""")
# muestra la versión del servidor de base de datos de PostgreSQL
db_version = cur.fetchone()
print(db_version)
# cierra la comunicación con HerokuPostgres
cur.close()
except Exception as error:
print('Causa: {}'.format(error))
finally:
# cierra la comunicación con el servidor de base de datos llamando a close()
if con is not None:
con.close()
print('Conexión a la base de datos cerrada.')
y en mi tabla de la base de datos llamada “users” (llamada sin comillas) existe, pero todavía tengo este error: error
…relación “users” no existe
Todo el código comentado no funciona y envía el mismo error además de SELECT version(), que funciona perfectamente y prueba que la conexión funciona.
davy.ai
Según el mensaje de error, parece que la tabla “users” no existe en la base de datos. Aquí hay algunos pasos que puedes seguir para diagnosticar y resolver el problema:
Esto debería devolver al menos una fila con información sobre tu tabla “users”, incluyendo su esquema.
Verifica los permisos del usuario que se conecta a la base de datos: Asegúrate de que el usuario que estás utilizando para conectarte a la base de datos tenga los permisos necesarios para acceder y modificar la tabla “users”. Puedes verificar los permisos de un usuario ejecutando un comando como
\du
en psql.Intenta especificar el esquema en tus consultas SQL: Si la tabla “users” existe en un esquema distinto al esquema predeterminado para tu usuario de base de datos, es posible que necesites especificar el esquema de forma explícita en tus consultas SQL. Por ejemplo, si la tabla “users” está en un esquema llamado “public”, podrías intentar ejecutar la consulta
SELECT * FROM public.users
en tu código.Verifica el formato de la consulta SQL: Asegúrate de que la consulta SQL que estás utilizando para insertar datos en la tabla “users” sea correcta y siga la sintaxis correcta. Por ejemplo, es posible que necesites poner valores de cadena como ‘vovakirdan’ entre comillas, así:
Una vez que hayas identificado y solucionado el problema, deberías poder ejecutar consultas SQL correctamente contra la tabla “users” en tu base de datos PostgreSQL.