Nouvelle méthode avec PostgreSQL 9.1
Grâce aux conseils de RK ci-dessous, j'ai regardé ce tutoriel et j'ai découvert que pour PostgreSQL 9.1, tout ce que vous devez faire est d'ajouter les extensions postgis
et postgis_topology
une base de données existante en utilisant les menus contextuels de pgAdmin. Pour créer un modèle de postgis, j'ai créé une nouvelle base de données appelée template-postgis
puis ajouté ces extensions. J'ai ensuite créé mon autre base de données en utilisant ce modèle. Lors de l'utilisation, pg_dump
j'ai trouvé que la taille de l'exportation était beaucoup plus petite, car il semble simplement inclure ces lignes et ne pas vider les fonctions d'extension:
CREATE EXTENSION IF NOT EXISTS postgis WITH SCHEMA public;
CREATE EXTENSION IF NOT EXISTS postgis_topology WITH SCHEMA topology;
Ancienne méthode redondante:
J'ai fini par utiliser les fichiers .sql ici:
/Applications/Postgres.app/Contents/MacOS/share/contrib/postgis-2.0/postgis.sql
/Applications/Postgres.app/Contents/MacOS/share/contrib/postgis-2.0/spatial_ref_sys.sql
/Applications/Postgres.app/Contents/MacOS/share/contrib/postgis-2.0/topology.sql
De plus, j'ai eu cette erreur lorsque j'ai importé une base de données PostGIS existante dans une nouvelle base de données créée à partir de ce modèle:
ERROR: type "spheroid" already exists
J'ai donc suivi les instructions ici et utilisé ON_ERROR_ROLLBACK=on
pour configurer le modèle, après avoir créé une base de données vierge appelée "template_postgis":
psql -U postgres -d template_postgis -1 -f /Applications/Postgres.app/Contents/MacOS/share/contrib/postgis-2.0/postgis.sql -v ON_ERROR_ROLLBACK=on
psql -U postgres -d template_postgis -1 -f /Applications/Postgres.app/Contents/MacOS/share/contrib/postgis-2.0/spatial_ref_sys.sql -v ON_ERROR_ROLLBACK=on
psql -U postgres -d template_postgis -1 -f /Applications/Postgres.app/Contents/MacOS/share/contrib/postgis-2.0/topology.sql -v ON_ERROR_ROLLBACK=on
Et puis importé ma base de données de sauvegarde, par exemple:
psql -U someuser -d somedb -1 -f somefile.sql -v ON_ERROR_ROLLBACK=on
Méthode encore plus ancienne:
J'ai fait ça:
createdb -E UTF8 -T template0 template_postgis
createlang -d template_postgis plpgsql
psql --quiet -d template_postgis -f /Applications/Postgres.app/Contents/MacOS/share/extension/postgis--2.0.1.sql
Le chemin d'accès à postgis--2.0.1.sql
sera différent selon votre configuration.