Новий метод з PostgreSQL 9.1
Завдяки поради РК нижче, я переглянув цей підручник і виявив, що для PostgreSQL 9.1 все, що вам потрібно зробити, - це додати розширення postgis
та postgis_topology
наявну базу даних за допомогою контекстних меню pgAdmin. Для створення шаблону Postgis я створив нову базу даних під назвою template-postgis
та додав ці розширення. Потім я створив свою іншу базу даних за допомогою цього шаблону. Під час використання pg_dump
я виявив, що розмір експорту був значно меншим, оскільки, здається, він просто включає ці рядки, а не скидає функції розширення:
CREATE EXTENSION IF NOT EXISTS postgis WITH SCHEMA public;
CREATE EXTENSION IF NOT EXISTS postgis_topology WITH SCHEMA topology;
Старий надлишковий метод:
Я в кінцевому рахунку використовував тут файли .sql:
/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
Також я отримав цю помилку, коли імпортував існуючу базу даних PostGIS в нову базу даних, зроблену з цього шаблону:
ERROR: type "spheroid" already exists
Тому я дотримувався тут інструкцій і використовував ON_ERROR_ROLLBACK=on
для настройки шаблону, створивши порожню базу даних під назвою "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
А потім імпортував мій резервний db, наприклад:
psql -U someuser -d somedb -1 -f somefile.sql -v ON_ERROR_ROLLBACK=on
Ще старший метод:
Я зробив це:
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
Шлях до postgis--2.0.1.sql
буде відрізнятися залежно від вашого налаштування.