2015-06-26 13 views
5

पर अपग्रेड करने के बाद पोस्टगिस माइग्रेशन त्रुटि मैं पोस्टग्रेज़ डेटाबेस और पोस्टगिस एक्सटेंशन के साथ काम कर रहा हूं। ओएस एक्स परDjg 1.8

  • psql (9,3

    Traceback (most recent call last): 
        File "./manage.py", line 13, in <module> 
        execute_from_command_line(sys.argv) 
        File "/my-project/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line 
        utility.execute() 
        File "/my-project/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 330, in execute 
        self.fetch_command(subcommand).run_from_argv(self.argv) 
        File "/my-project/env/lib/python2.7/site-packages/django/core/management/base.py", line 390, in run_from_argv 
        self.execute(*args, **cmd_options) 
        File "/my-project/env/lib/python2.7/site-packages/django/core/management/base.py", line 441, in execute 
        output = self.handle(*args, **options) 
        File "/my-project/env/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 91, in handle 
        connection.prepare_database() 
        File "/my-project/env/lib/python2.7/site-packages/django/contrib/gis/db/backends/postgis/base.py", line 39, in prepare_database 
        cursor.execute("CREATE EXTENSION IF NOT EXISTS postgis") 
        File "/my-project/env/lib/python2.7/site-packages/django/db/backends/utils.py", line 79, in execute 
        return super(CursorDebugWrapper, self).execute(sql, params) 
        File "/my-project/env/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute 
        return self.cursor.execute(sql, params) 
        File "/my-project/env/lib/python2.7/site-packages/django/db/utils.py", line 97, in __exit__ 
        six.reraise(dj_exc_type, dj_exc_value, traceback) 
        File "/my-project/env/lib/python2.7/site-packages/django/db/backends/utils.py", line 62, in execute 
        return self.cursor.execute(sql) 
    django.db.utils.ProgrammingError: type "spheroid" already exists 
    

    संस्करण

    मैं Postgres.app उपयोग कर रहा हूँ: अब, Django 1.8 पर अपग्रेड करने के बाद, मैं इस त्रुटि जबकि manage.py migrate चल रहा हो रही है। 4)

  • SELECT PostGIS_version(); postgis_version 2.1 USE_GEOS=1 USE_PROJ=1USE_STATS=1
  • Django 1.8.2

उत्तर

3

ठीक है मैंने इसे हल किया।

सबसे पहले मैंने पोस्टग्रेस.एप को नवीनतम के साथ पोस्ट करने और brew पैकेजों को अपग्रेड करने के साथ पोस्टग्रेस और पोस्टगिस को अपग्रेड किया। इस के बाद, मैं निम्नलिखित त्रुटि मिली:

Traceback (most recent call last): 
    File "./manage.py", line 13, in <module> 
    execute_from_command_line(sys.argv) 
    File "/my-project/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line 
    utility.execute() 
    File "/my-project/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 330, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/my-project/env/lib/python2.7/site-packages/django/core/management/base.py", line 390, in run_from_argv 
    self.execute(*args, **cmd_options) 
    File "/my-project/env/lib/python2.7/site-packages/django/core/management/base.py", line 441, in execute 
    output = self.handle(*args, **options) 
    File "/my-project/env/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 91, in handle 
    connection.prepare_database() 
    File "/my-project/env/lib/python2.7/site-packages/django/contrib/gis/db/backends/postgis/base.py", line 39, in prepare_database 
    cursor.execute("CREATE EXTENSION IF NOT EXISTS postgis") 
    File "/my-project/env/lib/python2.7/site-packages/django/db/backends/utils.py", line 79, in execute 
    return super(CursorDebugWrapper, self).execute(sql, params) 
    File "/my-project/env/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute 
    return self.cursor.execute(sql, params) 
    File "/my-project/env/lib/python2.7/site-packages/django/db/utils.py", line 97, in __exit__ 
    six.reraise(dj_exc_type, dj_exc_value, traceback) 
    File "/my-project/env/lib/python2.7/site-packages/django/db/backends/utils.py", line 62, in execute 
    return self.cursor.execute(sql) 
django.db.utils.InternalError: PostGIS is already installed in schema 'public', uninstall it first 

तो मैं एक "हार्ड अपग्रेड" का प्रदर्शन किया, जैसा कि यहाँ http://postgis.net/docs/manual-2.1/postgis_installation.html#upgrading

सभी कदम समझाया

  1. pg_dump -U $PGUSER -Fc -b -v -f "your_db.backup" your_db
  2. (सहित हार्ड अपग्रेड।)
  3. psql -U $PGUSER -d postgres -c "DROP DATABASE your_db;"
  4. brew uninstall postgresql93 && brew install postgresql या brew upgrade postgresql
  5. brew uninstall postgis15 && brew install postgis या brew upgrade postgis
  6. नवीनतम ही
  7. pip uninstall psycopg2 && pip install psycopg2
  8. psql -U $PGUSER -d postgres -c "CREATE DATABASE your_db;"
  9. psql -U $PGUSER -d your_db -c "CREATE EXTENSION postgis;"
  10. /usr/local/share/postgis/postgis_restore.pl your_db.backup | psql -U $PGUSER your_db 2> errors.txt
+0

मैं एक ही मुद्दा जब 1.9 django में जाने मिल गया के साथ Postgres.app बदलें। यह समाधान मेरे लिए काम किया। हालांकि मुझे 3 से 6 कदम नहीं करना पड़ा। –

संबंधित मुद्दे