Skip to content

Ansible openwisp2 install fails on migration

Created by: HizkiFW

Installing locally fails on TASK [openwisp.openwisp2 : migrate], outputting the following error:

fatal: [0.0.0.0]: FAILED! => {"changed": false, "cmd": "./manage.py migrate --noinput", "msg": "\n:stderr: Traceback (most recent call last):\n  File \"/opt/openwisp2/env/lib/python3.5/site-packages/django/contrib/gis/db/backends/spatialite/base.py\", line 60, in get_new_connection\n    cur.execute(\"SELECT load_extension(%s)\", (self.spatialite_lib,))\n  File \"/opt/openwisp2/env/lib/python3.5/site-packages/django/db/backends/sqlite3/base.py\", line 328, in execute\n    return Database.Cursor.execute(self, query, params)\nsqlite3.OperationalError: /usr/lib/x86_64-linux-gnu/libspatialite.so.7: undefined symbol: sqlite3_spatialite_init\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"./manage.py\", line 10, in <module>\n    execute_from_command_line(sys.argv)\n  File \"/opt/openwisp2/env/lib/python3.5/site-packages/django/core/management/__init__.py\", line 364, in execute_from_command_line\n    utility.execute()\n  File \"/opt/openwisp2/env/lib/python3.5/site-packages/django/core/management/__init__.py\", line 356, in execute\n    self.fetch_command(subcommand).run_from_argv(self.argv)\n  File \"/opt/openwisp2/env/lib/python3.5/site-packages/django/core/management/base.py\", line 283, in run_from_argv\n    self.execute(*args, **cmd_options)\n  File \"/opt/openwisp2/env/lib/python3.5/site-packages/django/core/management/base.py\", line 330, in execute\n    output = self.handle(*args, **options)\n  File \"/opt/openwisp2/env/lib/python3.5/site-packages/django/core/management/commands/migrate.py\", line 81, in handle\n    connection.prepare_database()\n  File \"/opt/openwisp2/env/lib/python3.5/site-packages/django/contrib/gis/db/backends/spatialite/base.py\", line 72, in prepare_database\n    with self.cursor() as cursor:\n  File \"/opt/openwisp2/env/lib/python3.5/site-packages/django/db/backends/base/base.py\", line 254, in cursor\n    return self._cursor()\n  File \"/opt/openwisp2/env/lib/python3.5/site-packages/django/db/backends/base/base.py\", line 229, in _cursor\n    self.ensure_connection()\n  File \"/opt/openwisp2/env/lib/python3.5/site-packages/django/db/backends/base/base.py\", line 213, in ensure_connection\n    self.connect()\n  File \"/opt/openwisp2/env/lib/python3.5/site-packages/django/db/backends/base/base.py\", line 189, in connect\n    self.connection = self.get_new_connection(conn_params)\n  File \"/opt/openwisp2/env/lib/python3.5/site-packages/django/contrib/gis/db/backends/spatialite/base.py\", line 65, in get_new_connection\n    six.reraise(ImproperlyConfigured, ImproperlyConfigured(new_msg), sys.exc_info()[2])\n  File \"/opt/openwisp2/env/lib/python3.5/site-packages/django/utils/six.py\", line 685, in reraise\n    raise value.with_traceback(tb)\n  File \"/opt/openwisp2/env/lib/python3.5/site-packages/django/contrib/gis/db/backends/spatialite/base.py\", line 60, in get_new_connection\n    cur.execute(\"SELECT load_extension(%s)\", (self.spatialite_lib,))\n  File \"/opt/openwisp2/env/lib/python3.5/site-packages/django/db/backends/sqlite3/base.py\", line 328, in execute\n    return Database.Cursor.execute(self, query, params)\ndjango.core.exceptions.ImproperlyConfigured: Unable to load the SpatiaLite library extension \"libspatialite.so.7\" because: /usr/lib/x86_64-linux-gnu/libspatialite.so.7: undefined symbol: sqlite3_spatialite_init\n", "path": "/opt/openwisp2/env/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin", "state": "absent", "syspath": ["/tmp/ansible_7an2FN", "/tmp/ansible_7an2FN/ansible_modlib.zip", "/tmp/ansible_7an2FN/ansible_modlib.zip", "/usr/lib/python2.7", "/usr/lib/python2.7/plat-x86_64-linux-gnu", "/usr/lib/python2.7/lib-tk", "/usr/lib/python2.7/lib-old", "/usr/lib/python2.7/lib-dynload", "/usr/local/lib/python2.7/dist-packages", "/usr/lib/python2.7/dist-packages"]}

It seems to be a problem with spatialite.