Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

609
Views
psycopg2.OperationalError: FATAL: la base de datos no existe

Estoy tratando de llenar un par de bases de datos con psycopg2 dentro de un servidor del que no soy el usuario raíz (no sé si es relevante o no). mi código parece

 import json from psycopg2 import connect cors = connect(user='jungal01', dbname='course') req = connect(user="jungal01", dbname='requirement') core = cors.cursor() reqs = req.cursor() with open('gened.json') as gens: geneds = json.load(gens) for i in range(len(geneds)): core.execute('''insert into course (number, description, title) values({0}, {1}, {2});''' .format(geneds[i]["number"], geneds[i]['description'], geneds[i]['title'] )) reqs.execute('''insert into requirement (fulfills) values({0});''' .format(geneds[i]['fulfills'] )) db.commit()

cuando ejecuto el código, aparece el error pycopg2 anterior. Sé que existen estas bases de datos en particular, pero no puedo entender por qué no se conecta a mis bases de datos. (búsqueda secundaria, tampoco estoy seguro acerca de esa declaración de compromiso. ¿Debería estar en el bucle for o fuera de él? ¿Se supone que es específico de la base de datos?)

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Primero, tiene db no es una variable definida, por lo que su código no debería ejecutarse completamente de todos modos.

\list en este servidor es un montón de bases de datos llenas de nombres de usuario, de los cuales mi nombre de usuario es uno

Entonces lo siguiente es cómo debe conectarse. A una base de datos, no a una tabla, y el patrón regular es poner el nombre de la base de datos y luego el usuario/contraseña.

Un "esquema" es un término suelto en la base de datos relacional. Tanto las tablas como las bases de datos tienen esquemas, pero parece que espera conectarse a una tabla, no a una base de datos.

Por lo tanto, pruebe este código con un intento de solucionar su problema de sangría e inyección de SQL. Consulte esta documentación .

Tenga en cuenta que primero debe haber creado las dos tablas en la base de datos a la que se está conectando.

 import json from psycopg2 import connect username = 'jungal01' conn = connect(dbname=username, user=username) cur = conn.cursor() with open('gened.json') as gens: geneds = json.load(gens) for g in geneds: cur.execute('''insert into course (number, description, title) values(%(number)s, %(description)s, %(title)s);''', g) cur.execute('''insert into requirement (fulfills) values(%(fulfills)s);''', g) conn.commit()
over 4 years ago · Santiago Trujillo Report

0

Allen, dijiste: "en postgres, las tablas son bases de datos". Eso es absolutamente incorrecto. Su mensaje de error resulta de este malentendido. Desea conectarse a una base de datos e insertar en una tabla que existe en esa base de datos. Está intentando insertar en una base de datos, una operación sin sentido.

over 4 years ago · Santiago Trujillo Report

0

Asegúrese de dar el nombre del catálogo como nombre de la base de datos y no el esquema del catálogo.

El catálogo es confuso y bastante innecesario. Más detalles a continuación: ¿Cuál es la diferencia entre un catálogo y un esquema en una base de datos relacional?

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!