2014-02-17 2 views
17

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 | {} 
+1

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

Antwort

12

Die offizielle Anleitung zum Einrichten von PostGIS auf RDS ist here.

Das hat bei mir funktioniert.

ich noch habe Probleme meine Daten zu importieren, bekommen:

... 
must be superuser to create a base type 
permission denied for language c 
.... 

Irgendwelche Ideen auf die?
Ist es auch möglich, sich als rdsadmin einzuloggen?

+0

Sollten wir das Setup beim Importieren von SQL-Datei tun? – sarat

+0

danke für den Link – geogeek

+0

Haben Sie jemals die Basistyp und Sprache c Probleme lösen? – joncon