mirror of
https://github.com/django/django.git
synced 2025-07-23 13:15:32 +00:00
Fixed #24499 -- Dropped support for PostGIS 1.5.
This commit is contained in:
parent
faad6070ee
commit
26996e2d55
13 changed files with 26 additions and 273 deletions
|
@ -1,16 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
if [[ `uname -r | grep el6` ]]; then
|
||||
POSTGIS_SQL_PATH=`pg_config --sharedir`/contrib/postgis
|
||||
POSTGIS_SQL_FILE=$POSTGIS_SQL_PATH/postgis-64.sql
|
||||
else
|
||||
POSTGIS_SQL_PATH=`pg_config --sharedir`/contrib/postgis-1.5
|
||||
POSTGIS_SQL_FILE=$POSTGIS_SQL_PATH/postgis.sql
|
||||
fi
|
||||
createdb -E UTF8 template_postgis # Create the template spatial database.
|
||||
createlang -d template_postgis plpgsql # Adding PLPGSQL language support.
|
||||
psql -d postgres -c "UPDATE pg_database SET datistemplate='true' WHERE datname='template_postgis';"
|
||||
psql -d template_postgis -f $POSTGIS_SQL_FILE # Loading the PostGIS SQL routines
|
||||
psql -d template_postgis -f $POSTGIS_SQL_PATH/spatial_ref_sys.sql
|
||||
psql -d template_postgis -c "GRANT ALL ON geometry_columns TO PUBLIC;" # Enabling users to alter spatial tables.
|
||||
psql -d template_postgis -c "GRANT ALL ON geography_columns TO PUBLIC;"
|
||||
psql -d template_postgis -c "GRANT ALL ON spatial_ref_sys TO PUBLIC;"
|
|
@ -1,18 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
POSTGIS_SQL=postgis.sql
|
||||
|
||||
# For Ubuntu 11.10, 12.04 / Linux Mint 12 (with PostGIS 1.5)
|
||||
if [ -d "/usr/share/postgresql/9.1/contrib/postgis-1.5" ]
|
||||
then
|
||||
POSTGIS_SQL_PATH=/usr/share/postgresql/9.1/contrib/postgis-1.5
|
||||
fi
|
||||
|
||||
createdb -E UTF8 template_postgis && \
|
||||
( createlang -d template_postgis -l | grep plpgsql || createlang -d template_postgis plpgsql ) && \
|
||||
psql -d postgres -c "UPDATE pg_database SET datistemplate='true' WHERE datname='template_postgis';" && \
|
||||
psql -d template_postgis -f $POSTGIS_SQL_PATH/$POSTGIS_SQL && \
|
||||
psql -d template_postgis -f $POSTGIS_SQL_PATH/spatial_ref_sys.sql && \
|
||||
psql -d template_postgis -c "GRANT ALL ON geometry_columns TO PUBLIC;" && \
|
||||
psql -d template_postgis -c "GRANT ALL ON spatial_ref_sys TO PUBLIC;"
|
||||
psql -d template_postgis -c "GRANT ALL ON geography_columns TO PUBLIC;"
|
|
@ -12,7 +12,7 @@ Program Description Required
|
|||
`PROJ.4`_ Cartographic Projections library Yes (PostgreSQL and SQLite only) 4.9, 4.8, 4.7, 4.6, 4.5, 4.4
|
||||
:doc:`GDAL <../gdal>` Geospatial Data Abstraction Library Yes (SQLite only) 1.11, 1.10, 1.9, 1.8, 1.7
|
||||
:doc:`GeoIP <../geoip>` IP-based geolocation library No 1.4
|
||||
`PostGIS`__ Spatial extensions for PostgreSQL Yes (PostgreSQL only) 2.1, 2.0, 1.5
|
||||
`PostGIS`__ Spatial extensions for PostgreSQL Yes (PostgreSQL only) 2.1, 2.0
|
||||
`SpatiaLite`__ Spatial extensions for SQLite Yes (SQLite only) 4.1, 4.0, 3.0, 2.4
|
||||
======================== ==================================== ================================ ============================
|
||||
|
||||
|
@ -29,7 +29,6 @@ totally fine with GeoDjango. Your mileage may vary.
|
|||
GDAL 1.9.0 2012-01-03
|
||||
GDAL 1.10.0 2013-04-29
|
||||
GDAL 1.11.0 2014-04-25
|
||||
PostGIS 1.5.0 2010-02-04
|
||||
PostGIS 2.0.0 2012-04-03
|
||||
PostGIS 2.1.0 2013-08-17
|
||||
Spatialite 2.4.0 2010-11-14
|
||||
|
|
|
@ -43,8 +43,7 @@ Finally, make and install::
|
|||
.. note::
|
||||
|
||||
GeoDjango does not automatically create a spatial database. Please consult
|
||||
the section on :ref:`spatialdb_template91` or
|
||||
:ref:`spatialdb_template_earlier` for more information.
|
||||
the section on :ref:`spatialdb_template91` for more information.
|
||||
|
||||
__ http://postgis.net/
|
||||
|
||||
|
@ -54,8 +53,8 @@ Post-installation
|
|||
.. _spatialdb_template:
|
||||
.. _spatialdb_template91:
|
||||
|
||||
Creating a spatial database with PostGIS 2.0 and PostgreSQL 9.1+
|
||||
----------------------------------------------------------------
|
||||
Creating a spatial database
|
||||
---------------------------
|
||||
|
||||
PostGIS 2 includes an extension for Postgres 9.1+ that can be used to enable
|
||||
spatial functionality::
|
||||
|
@ -77,94 +76,6 @@ __ http://postgis.net/docs/Topology.html
|
|||
the :djadmin:`migrate` process. You can still create it manually if you
|
||||
wish.
|
||||
|
||||
.. _spatialdb_template_earlier:
|
||||
|
||||
Creating a spatial database template for earlier versions
|
||||
---------------------------------------------------------
|
||||
|
||||
If you have an earlier version of PostGIS or PostgreSQL, the CREATE
|
||||
EXTENSION isn't available and you need to create the spatial database
|
||||
using the following instructions.
|
||||
|
||||
Creating a spatial database with PostGIS is different than normal because
|
||||
additional SQL must be loaded to enable spatial functionality. Because of
|
||||
the steps in this process, it's better to create a database template that
|
||||
can be reused later.
|
||||
|
||||
First, you need to be able to execute the commands as a privileged database
|
||||
user. For example, you can use the following to become the ``postgres`` user::
|
||||
|
||||
$ sudo su - postgres
|
||||
|
||||
.. note::
|
||||
|
||||
The location *and* name of the PostGIS SQL files (e.g., from
|
||||
``POSTGIS_SQL_PATH`` below) depends on the version of PostGIS.
|
||||
Version 1.5 uses ``<sharedir>/contrib/postgis-1.5/postgis.sql``.
|
||||
|
||||
To complicate matters, Debian/Ubuntu distributions have their own separate
|
||||
directory naming system that might change with time. In this case, use the
|
||||
:download:`create_template_postgis-debian.sh` script.
|
||||
|
||||
The example below assumes PostGIS 1.5, thus you may need to modify
|
||||
``POSTGIS_SQL_PATH`` and the name of the SQL file for the specific
|
||||
version of PostGIS you are using.
|
||||
|
||||
Once you're a database super user, then you may execute the following commands
|
||||
to create a PostGIS spatial database template::
|
||||
|
||||
$ POSTGIS_SQL_PATH=`pg_config --sharedir`/contrib/postgis-2.0
|
||||
# Creating the template spatial database.
|
||||
$ createdb -E UTF8 template_postgis
|
||||
$ createlang -d template_postgis plpgsql # Adding PLPGSQL language support.
|
||||
# Allows non-superusers the ability to create from this template
|
||||
$ psql -d postgres -c "UPDATE pg_database SET datistemplate='true' WHERE datname='template_postgis';"
|
||||
# Loading the PostGIS SQL routines
|
||||
$ psql -d template_postgis -f $POSTGIS_SQL_PATH/postgis.sql
|
||||
$ psql -d template_postgis -f $POSTGIS_SQL_PATH/spatial_ref_sys.sql
|
||||
# Enabling users to alter spatial tables.
|
||||
$ psql -d template_postgis -c "GRANT ALL ON geometry_columns TO PUBLIC;"
|
||||
$ psql -d template_postgis -c "GRANT ALL ON geography_columns TO PUBLIC;"
|
||||
$ psql -d template_postgis -c "GRANT ALL ON spatial_ref_sys TO PUBLIC;"
|
||||
|
||||
These commands may be placed in a shell script for later use; for convenience
|
||||
the following scripts are available:
|
||||
|
||||
=============== =============================================
|
||||
PostGIS version Bash shell script
|
||||
=============== =============================================
|
||||
1.5 :download:`create_template_postgis-1.5.sh`
|
||||
Debian/Ubuntu :download:`create_template_postgis-debian.sh`
|
||||
=============== =============================================
|
||||
|
||||
Afterwards, you may create a spatial database by simply specifying
|
||||
``template_postgis`` as the template to use (via the ``-T`` option)::
|
||||
|
||||
$ createdb -T template_postgis <db name>
|
||||
|
||||
.. note::
|
||||
|
||||
While the ``createdb`` command does not require database super-user privileges,
|
||||
it must be executed by a database user that has permissions to create databases.
|
||||
You can create such a user with the following command::
|
||||
|
||||
$ createuser --createdb <user>
|
||||
|
||||
PostgreSQL's createdb fails
|
||||
---------------------------
|
||||
|
||||
When the PostgreSQL cluster uses a non-UTF8 encoding, the
|
||||
:file:`create_template_postgis-*.sh` script will fail when executing
|
||||
``createdb``::
|
||||
|
||||
createdb: database creation failed: ERROR: new encoding (UTF8) is incompatible
|
||||
with the encoding of the template database (SQL_ASCII)
|
||||
|
||||
The `current workaround`__ is to re-create the cluster using UTF8 (back up any
|
||||
databases before dropping the cluster).
|
||||
|
||||
__ http://jacobian.org/writing/pg-encoding-ubuntu/
|
||||
|
||||
Managing the database
|
||||
---------------------
|
||||
|
||||
|
@ -175,4 +86,4 @@ For example, to create a ``geodjango`` spatial database and user, the following
|
|||
may be executed from the SQL Shell as the ``postgres`` user::
|
||||
|
||||
postgres# CREATE USER geodjango PASSWORD 'my_passwd';
|
||||
postgres# CREATE DATABASE geodjango OWNER geodjango TEMPLATE template_postgis ENCODING 'utf8';
|
||||
postgres# CREATE DATABASE geodjango OWNER geodjango;
|
||||
|
|
|
@ -17,16 +17,6 @@ Settings
|
|||
|
||||
The settings below have sensible defaults, and shouldn't require manual setting.
|
||||
|
||||
.. setting:: POSTGIS_TEMPLATE
|
||||
|
||||
``POSTGIS_TEMPLATE``
|
||||
^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
This setting may be used to customize the name of the PostGIS template
|
||||
database to use. It automatically defaults to ``'template_postgis'``
|
||||
(the same name used in the
|
||||
:ref:`installation documentation <spatialdb_template>`).
|
||||
|
||||
.. setting:: POSTGIS_VERSION
|
||||
|
||||
``POSTGIS_VERSION``
|
||||
|
@ -80,15 +70,6 @@ is done from an existing superuser account)::
|
|||
|
||||
postgres# ALTER ROLE <user_name> SUPERUSER;
|
||||
|
||||
Create a database using PostGIS version 2
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
When testing projects using :ref:`PostGIS 2 <spatialdb_template91>`,
|
||||
the test database is created using the ``CREATE EXTENSION postgis``
|
||||
instruction, provided that no template ``template_postgis`` (or named
|
||||
accordingly to :setting:`POSTGIS_TEMPLATE`) exists in the current
|
||||
database.
|
||||
|
||||
Windows
|
||||
-------
|
||||
|
||||
|
|
|
@ -308,12 +308,6 @@ This command should produce the following output:
|
|||
CREATE INDEX "world_worldborder_mpoly_id" ON "world_worldborder" USING GIST ( "mpoly" );
|
||||
COMMIT;
|
||||
|
||||
.. note::
|
||||
|
||||
With PostGIS < 2.0, the output is slightly different. The ``mpoly`` geometry
|
||||
column is added through a separate ``SELECT AddGeometryColumn(...)``
|
||||
statement.
|
||||
|
||||
If this looks correct, run :djadmin:`migrate` to create this table in the
|
||||
database:
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue