2011-06-25 15 views
5

मेरे पास एक से अधिक ऐप्स के साथ एक Django प्रोजेक्ट है। वे सभी engine = django.db.backends.postgresql_psycopg2 के साथ एक डीबी साझा करते हैं। अब मुझे GeoDjango की कुछ कार्यक्षमता चाहिए और मैंने फैसला किया कि मैं इसे अपने मौजूदा प्रोजेक्ट में एकीकृत करना चाहता हूं। मैंने ट्यूटोरियल के माध्यम से पढ़ा, और ऐसा लगता है कि मुझे GeoDjango के लिए एक अलग स्पार्टियल डेटाबेस बनाना है। मुझे आश्चर्य है कि वैसे भी है। मैं अपने db सेटिंग बदले बिना मेरी ऐप्स 'models.py में से एक में यह जोड़ने की कोशिश की:मौजूदा Django प्रोजेक्ट में GeoDjango को एकीकृत करना

from django.contrib.gis.db.models import PointField 

class Location(models.Model): 
     location = PointField() 

लेकिन जब मैं syncdb चलाने के लिए, मैं यह त्रुटि हुई।

File "/home/virtual/virtual-env/lib/python2.7/site-packages/django/contrib/gis/db/models/fields.py", line 200, in db_type 
    return connection.ops.geo_db_type(self) 

उत्तर

2

वास्तव में, के रूप में मैं याद है, django.contrib.gis.db.backends.postgis postgresql_psycopg2 का विस्तार है, ताकि आप सेटिंग में डाटाबेस ड्राइवर को बदल सकता है स्थानिक टेम्पलेट के साथ नए डाटाबेस बनाने और उसके बाद नए डाटाबेस के लिए डेटा को स्थानांतरित (दक्षिण इसके लिए महान है)। अपने आप से geodjango डीबी आंतरिक तरीकों पर अत्यधिक निर्भर है, दुर्भाग्यवश, आप नियमित डीबी के साथ इसका उपयोग नहीं कर सके।

अन्य तरीका - आप django की multi-db क्षमता का उपयोग कर सकते हैं, और geodjango मॉडल के लिए अतिरिक्त डीबी बना सकते हैं।

+1

यदि आप दक्षिण का उपयोग नहीं कर रहे हैं, तो आपको शुरुआत करने की आवश्यकता है। विशेष रूप से यदि आप संस्करण नियंत्रण उपकरण के साथ विकसित करते हैं। –

1

आपकी त्रुटि ऐसा लगता है कि यह आपकी सेटिंग्स फ़ाइल में डेटाबेस एक्सटेंशन को नहीं बदलेगा। आपको तकनीकी टेम्पलेट का उपयोग करके तकनीकी रूप से एक नया डेटाबेस बनाने की आवश्यकता नहीं है, आप सभी भू-स्थानिक उपहारों को प्राप्त करने के लिए बस अपने मौजूदा डेटाबेस पर पोस्टजीआईएस स्क्रिप्ट चला सकते हैं। हमेशा की तरह, आपको ऐसा करने से पहले अपने मौजूदा डेटाबेस का बैकअप लेना चाहिए।

0

मैं 100% नहीं हूं, लेकिन मुझे लगता है कि आप अपने मौजूदा डेटाबेस में postgis.sql और spatial_ref_sys.sql पाइप कर सकते हैं, टेबल पर अनुमतियां दे सकते हैं, और डीबी सेटिंग को "django.contrib.gis.db में बदल सकते हैं .backends.postgis "। (के बाद आप निश्चित रूप से deps स्थापित किया है)

https://docs.djangoproject.com/en/dev/ref/contrib/gis/install/#spatialdb-template

मैं तुम्हें क्या लगता है यह देखने के लिए दिलचस्पी होगी। सावधान रहें, पोस्टगिस इंस्टॉलेशन कुछ चरित्र बना सकता है लेकिन आप इसे बहुत अधिक बनाना नहीं चाहते हैं।

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