2012-07-13 11 views
6

मैं Symfony2 + Doctrine2 का उपयोग कर एक एप्लिकेशन बना रहा हूं। मेरे आवेदन को भू-स्थानिक डेटा स्टोर करने की आवश्यकता है, इसलिए मैंने उचित सिद्धांत एक्सटेंशन लिखा है। सभी बहुत अच्छे काम कर रहे हैं और ऐप एक लंबे समय तक उत्पादन वातावरण में चल रहा है।सिद्धांत प्रवास, कस्टम सिद्धांत प्रकारों का उपयोग करने में समस्याएं

अब मुझे कुछ नई सुविधाएं जोड़नी होंगी और मुझे सभी डेटा हटाने के बिना डेटाबेस को अपडेट करने की आवश्यकता है। मैं DoctrineMigrationBundle उपयोग के बारे में thougth लेकिन जब मैं चलाएँ:

# Doctrine Configuration 
doctrine: 
    dbal: 
     driver: %database_driver% 
     host:  %database_host% 
     port:  %database_port% 
     dbname: %database_name% 
     user:  %database_user% 
     password: %database_password% 
     charset: UTF8 
     types: 
      point: App\EngineBundle\DoctrineExtensions\PointType 

कस्टम:

[Doctrine\DBAL\DBALException]                  
    Unknown database type point requested, 
    Doctrine\DBAL\Platforms\MySqlPlatform may not 
    support it. 

यह मेरा config.yml के प्रासंगिक अनुभाग है:

$ php app/console doctrine:migrations:status 

मैं यह त्रुटि आई टाइप 'पॉइंट' मैप किया गया है, तो मैं गलत क्या कर रहा हूं?

+0

मैं पोस्टग्रेस के साथ synfony 3 पर हूं और मुझे यह त्रुटि मिलती है, क्या आप जानते हैं कि मैं इसे कैसे हल कर सकता हूं? मेरे पास config.yml के अंदर प्रकार नहीं हैं: [सिद्धांत \ DBAL \ DBALException] अज्ञात डेटाबेस प्रकार बिंदु अनुरोध किया गया है, सिद्धांत \ DBAL \ Platforms \ PostgreSQL92Platform इसका समर्थन नहीं कर सकता है। –

उत्तर

12

मैं अपने स्वयं के प्रश्न का उत्तर देता हूं, ऐसा लगता है कि समस्या यह है कि सिद्धांत प्रकार के लिए कस्टम मैपिंग के लिए मैपिंग की भी आवश्यकता है। तो config.yml इस तरह दिखना चाहिए:

# Doctrine Configuration 
doctrine: 
    dbal: 
     driver: %database_driver% 
     host:  %database_host% 
     port:  %database_port% 
     dbname: %database_name% 
     user:  %database_user% 
     password: %database_password% 
     charset: UTF8 
     types: 
      point: App\EngineBundle\DoctrineExtensions\PointType 
     mapping_types: 
      point: point 
+0

बहुत बहुत धन्यवाद, इससे मुझे कुछ सिरदर्द बचाया गया :-) दुर्भाग्यवश, एक ही एसक्यूएल देशी में मैप किए गए कई कस्टम प्रकारों का उपयोग करते समय इसमें समस्याएं हैं। मेरे पास दो प्रकार हैं, enumA और enumB, जो दोनों ENUM (...) के लिए मानचित्र हैं। सिद्धांत (डीसी 2 टाइप: enumA) टिप्पणी को अनदेखा करने के लिए सिद्धांत seens। : - / – xrstf