2012-08-24 8 views
12

El siguiente código no provoca un error. Pero tampoco pone ningún valor en mi base de datos. Han eliminado todas las restricciones de la tabla, excepto el índice en la clave principal. Los dos campos son ambas cadenas. ¿Algunas ideas? Lo más confuso es que no se registran errores.No se registraron errores con Falló Postgres/Psycopg2 copy_from

conn = psycopg2.connect("dbname=<mydbname> user=postgres password=<mypassword>") 
cur = conn.cursor() 
output = StringIO.StringIO() 
output.write('Citizen Caine\tMy_API_id\n') 
cur.copy_from(output, 'movie', columns=('title','api_id')) 
conn.commit() 
+1

dónde está tu commit()? –

+0

Esa es una buena captura, pero solo se omitió en mi primer borrador aquí. La confirmación está en mi código y no está actualizando. –

Respuesta

17

Tuve problemas con este también. Algún conocimiento oculto es que usted tiene que hacer un:

output.seek(0) #put the position of the buffer at the beginning 

después de su write, o si se está moviendo desde la base de datos a la base de datos, después de hacer un copy_to.

Es fácil olvidar que StringIO objetos tienen todos los mismos métodos y atributos de un file object.

+2

Eso lo hizo. ¡GRACIAS! –

+0

Creo que sí. Perdí mi conexión cuando envié el comentario. –

Cuestiones relacionadas