Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

613
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda