Commit cc870b8e authored by Kenial Lee's avatar Kenial Lee Committed by Tim Graham
Browse files

Fixed #23901 -- Documented how to use SpatiaLite with Homebrew.

parent 379431ef
Loading
Loading
Loading
Loading
+37 −2
Original line number Diff line number Diff line
@@ -164,8 +164,13 @@ to build and install::
Mac OS X-specific instructions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Mac OS X users should follow the instructions in the :ref:`kyngchaos` section,
as it is much easier than building from source.
To install the SpatiaLite library and tools, Mac OS X users can choose between
:ref:`kyngchaos` and `Homebrew`_.

KyngChaos
^^^^^^^^^

First, follow the instructions in the :ref:`kyngchaos` section.

When :ref:`create_spatialite_db`, the ``spatialite`` program is required.
However, instead of attempting to compile the SpatiaLite tools from source,
@@ -184,6 +189,23 @@ add the following to your ``settings.py``::

__ http://www.gaia-gis.it/spatialite-2.3.1/binaries.html

Homebrew
^^^^^^^^

`Homebrew`_ handles all the SpatiaLite related packages on your behalf,
including SQLite3, SpatiaLite, PROJ, and GEOS. Install them like this::

    $ brew update
    $ brew install spatialite-tools
    $ brew install gdal

Finally, for GeoDjango to be able to find the SpatiaLite library, add the
following to your ``settings.py``::

    SPATIALITE_LIBRARY_PATH='/usr/local/lib/mod_spatialite.dylib'

.. _Homebrew: http://brew.sh/

.. _create_spatialite_db:

Creating a spatial database for SpatiaLite
@@ -207,3 +229,16 @@ You can safely ignore the error messages shown.
    The parameter ``geodjango.db`` is the *filename* of the SQLite database
    you want to use.  Use the same in the :setting:`DATABASES` ``"name"`` key
    inside your ``settings.py``.

.. note::

    When running ``manage.py migrate`` with a SQLite (or SpatiaLite) database,
    the database file will be automatically created if it doesn't exist. In
    this case, if your models contain any geometry columns, you'll see this
    error::

        CreateSpatialIndex() error: "no such table: geometry_columns"

    It's because the table creation queries are executed without spatial
    metadata tables. To avoid this, make the database file before executing
    ``manage.py migrate`` as described above.