Ok, also ich bin ziemlich neu in RDS und AWS, aber ich kann nicht für das Leben von mir, meine Datenbank, die ich auf meinem Laptop erstellt, auf Amazon RDS, ich habe es bewegen zu meinem Test VPS und auch ohne Probleme auf allen meinen Desktop-Rechner, ist hier, was ich bisher versucht haben ..Einrichten PostGis auf Amazon RDS
create extension postgis;
create extension fuzzystrmatch;
create extension postgis_tiger_geocoder;
create extension postgis_topology;
alter schema tiger owner to rds_superuser;
alter schema topology owner to rds_superuser;
CREATE FUNCTION exec(text) returns text language plpgsql volatile AS $f$ BEGIN EXECUTE $1; RETURN $1; END; $f$;
SELECT exec('ALTER TABLE ' || quote_ident(s.nspname) || '.' || quote_ident(s.relname) || ' OWNER TO rds_superuser')
FROM (
SELECT nspname, relname
FROM pg_class c JOIN pg_namespace n ON (c.relnamespace = n.oid)
WHERE nspname in ('tiger','topology') AND
relkind IN ('r','S','v') ORDER BY relkind = 'S')
s;
GRANT ALL PRIVILEGES ON DATABASE testgetwork TO luke;
Dann meine lokale Kopie der neuen Datenbank, die ich mit der Datenbank verbinden und versuchen, und laden ...
[email protected]:~$ psql --host=myhost.dns.us-west-2.rds.amazonaws.com --port=5432 --username=luke --password --dbname=testgetwork < testgetwork.sql
Password for user luke:
SET
SET
SET
SET
SET
ERROR: schema "topology" already exists
ALTER SCHEMA
CREATE EXTENSION
ERROR: must be owner of extension plpgsql
CREATE EXTENSION
ERROR: must be owner of extension postgis
CREATE EXTENSION
ERROR: must be owner of extension postgis_topology
<more output, removed to save space>
ERROR: permission denied for relation spatial_ref_sys
invalid command \.
setval
--------
1
(1 row)
setval
<more output, removed to save space>
Meine Frage ist, wie kann ich von hier weitermachen? Alle Funktionen scheinen nur durch ein Berechtigungsproblem blockiert zu sein, da der Benutzer luke Teil der Gruppe rds_superuser ist. Weiß jemand, der Erfahrung mit PostGis und RDS hat, wie ich das beheben kann?
testgetwork=> \du
List of roles
Role name | Attributes | Member of
---------------+------------------------------------------------+-----------------
luke | Create role, Create DB | {rds_superuser}
rds_superuser | Cannot login | {}
rdsadmin | Superuser, Create role, Create DB, Replication | {}
Ich bin nicht vertraut mit RDS (noch), aber von dem, was ich gesehen habe, ist es sehr daran interessiert, Besitzer Regeln durchzusetzen. Also, wer ist der Besitzer der 'testgetwork' Datenbank? Wahrscheinlich 'Rdsadmin'. Selbst wenn nicht, werden Sie wahrscheinlich größere Erfolge beim Ausführen Ihrer Befehle als 'rdsadmin' haben. Mir ist klar, dass das nicht ideal ist, aber es kann sich als erfolgreich herausstellen, wenn man aus dem Tor kommt. – ProgrammerDan