sql >> Base de Datos >  >> RDS >> PostgreSQL

Django:permiso denegado al intentar acceder a la base de datos después de la restauración (migración)

Resulta que debe otorgar la propiedad explícita de todos los objetos en la base de datos al propietario después de la restauración. El propietario no es un superusuario. No es suficiente establecer solo el propietario en el momento de la creación de la base de datos. La solución final para la migración es así:

en el cliente:

pg_dump -f dump.sql -Ox database

en el servidor:

su postgres    
dropdb database
createdb database -O user
psql database -f dump.sql

y luego para configurar los privilegios:

psql database -c "GRANT ALL ON ALL TABLES IN SCHEMA public to user;"
psql database -c "GRANT ALL ON ALL SEQUENCES IN SCHEMA public to user;"
psql database -c "GRANT ALL ON ALL FUNCTIONS IN SCHEMA public to user;"

Tenga en cuenta que podríamos haber ejecutado el comando sql en la consola psql, pero este formulario se puede integrar fácilmente en scripts y demás.