Tuesday, 10 September 2013

psql telling me "database does not exist" in some places, recognizing it in others

psql telling me "database does not exist" in some places, recognizing it
in others

I'm trying to run these commands from this tutorial
(http://jamiecook.wordpress.com/2011/11/24/setting-up-postgresql-postgis-for-rails-on-ubuntu/)
sudo su - postgres
createdb -E UTF8 template_postgis # Create the template spatial database.
createlang -d template_postgis plpgsql # Adding PLPGSQL language support.
psql -d osm -f /usr/share/postgresql/8.4/contrib/postgis-1.5/postgis.sql
psql -d osm -f
/usr/share/postgresql/8.4/contrib/postgis-1.5/spatial_ref_sys.sql
cat <<EOS | psql -d template_postgis
UPDATE pg_database SET datistemplate = TRUE WHERE datname =
'template_postgis';
REVOKE ALL ON SCHEMA public FROM public;
GRANT USAGE ON SCHEMA public TO public;
GRANT ALL ON SCHEMA public TO postgres;
GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE public.geometry_columns TO
PUBLIC;
GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE public.spatial_ref_sys TO
PUBLIC;
GRANT ALL ON geometry_columns TO PUBLIC;
GRANT ALL ON geography_columns TO PUBLIC;
GRANT ALL ON spatial_ref_sys TO PUBLIC;
VACUUM FULL FREEZE;
EOS
and am getting the error:
ERROR: relation "sample_postgis_db" does not exist
LINE 1: UPDATE sample_postgis_db SET datistemplate=TRUE WHERE datnam...
But it certainly does exist:
psql -d postgres
\list
#=>
...
sample_postgis_db | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
...
I can login to it:
psql -d sample_postgis_db
but even when I run that UPDATE line inside of the db's psql, it still
doesn't recognize itself.
sample_postgis_db=# UPDATE sample_postgis_db SET datistemplate=TRUE WHERE
datname = "template_postgis";
ERROR: relation "sample_postgis_db" does not exist
LINE 1: UPDATE sample_postgis_db SET datistemplate=TRUE WHERE datnam...

No comments:

Post a Comment