Por lo que marca el error, es probable que se haya desfasado el generador 
de ID, por lo que está generando ID que ya existen en la tabla 
*product_template*. Según entiendo postgre utiliza secuencias, lo que 
habría que hacer sería "resincronizar" la secuencian con respecto a los ID 
que ya existen en la tabla. Aquí hay un método para hacerlo :

-- Login to psql and run the following
-- What is the result?
SELECT MAX(id) FROM your_table;

-- Then run...
-- This should be higher than the last result.
SELECT nextval('your_table_id_seq');

-- If it's not higher... run this set the sequence last to your highest pid it. 
-- (wise to run a quick pg_dump first...)
SELECT setval('your_table_id_seq', (SELECT MAX(id) FROM your_table));




Te el dejo el link de dónde indican como realizar eso :
http://stackoverflow.com/a/244265

El martes, 9 de diciembre de 2014 18:23:19 UTC-3, Maria Cecilia Santos 
Popper escribió:
>
>
> Hola!
>
> Después de hacer un back up de la base de datos 
> $ pg_dump dbname > output
>
> y luego de hacer un restore
> createdb -T template0 2014_restored --encoding=unicode
> psql dbname_restored < infile
>
> #Los nombres de los archivos y db son inventados
>
> no estoy pudiendo escribir nada en la base de datos re-establecida 
>  (dbname_restored) y me tira el siguiente error
>
>
> *Traceback (most recent call last):*
> *  File "/trytond/protocols/jsonrpc.py", line 125, in _marshaled_dispatch*
> *    response['result'] = dispatch_method(method, params)*
> *  File "/trytond/protocols/jsonrpc.py", line 158, in _dispatch*
> *    res = dispatch(*args)*
> *  File "/trytond/protocols/dispatcher.py", line 158, in dispatch*
> *    result = rpc.result(meth(*c_args, **c_kwargs))*
> *  File "/trytond/modules/product/product.py", line 120, in create*
> *    return super(Template, cls).create(vlist)*
> *  File "/trytond/model/modelsql.py", line 442, in create*
> *    [insert_values], [table.id <http://table.id/>]))*
> *  File "/trytond/backend/postgresql/database.py", line 309, in execute*
> *    return self.cursor.execute(sql, params)*
> *IntegrityError: llave duplicada viola restricción de unicidad 
> «product_template_pkey»*
> *DETAIL:  Ya existe la llave (id)=(4).*
>
>
> El número (id) = () aumenta con cada intento.
>
> Lo que ví cuando hice el restore de la base de datos es que me tiró 
> errores como el siguiente:
>
> *ERROR:  la restricción «stock_shipment_out_write_uid_fkey» para la 
> relación «stock_shipment_out» ya existe*
> *WARNING:  ningún privilegio pudo ser revocado para «public»*
> *REVOKE*
> *WARNING:  ningún privilegio pudo ser revocado para «public»*
> *REVOKE*
> *WARNING:  no se otorgaron privilegios para «public»*
> *GRANT*
> *WARNING:  no se otorgaron privilegios para «public»*
> *GRANT*
>
>
> Intuyo desde mi ignorancia en postgre que se trata de un problema de 
> permisos, la pregunta es, tiene solución?
> Por otro lado, cómo puedo evitar el conflicto de permisos cuando se 
> realizan backups?
>
> Gracias!
>
>
> -- 
> Lic. Cecilia Santos Popper
> Santa Fe
> (0342) 154 440 615
> www.linkedin.com/in/ceciliasp/
>  

Responder a