Browse Source

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

Kenial Lee 10 years ago
parent
commit
cc870b8ef5
1 changed files with 37 additions and 2 deletions
  1. 37 2
      docs/ref/contrib/gis/install/spatialite.txt

+ 37 - 2
docs/ref/contrib/gis/install/spatialite.txt

@@ -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.