2011-07-28 17 views
9

मेरे पास विचार, रिश्ते आदि के साथ एक जटिल डेटाबेस डिज़ाइन है। हमने मानक Zend_db से ORM पर स्विच करने का निर्णय लिया है। मैंने ज़ेन 1.11 और सिद्धांत 2.1 को सफलतापूर्वक एकीकृत किया। वहां सभी ट्यूटोरियल हाथ से लिखित कक्षाओं के माध्यम से संपूर्ण डेटाबेस बनाने के बारे में बताते हैं। लेकिन इसमें डेटा के साथ पहले से मौजूद डेटाबेस के बारे में क्या है? मैं फिर से खोज की है और पता चला मैं नीचे आदेशसिद्धांत 2 और ज़ेंड 1.11 कन्वर्ट-मैपिंग त्रुटि ..

php orm:convert-mapping --from-database php path/where/you/want/to/store/mapping/classes 

जब मैं केवल 3 तालिकाओं के साथ और किसी भी रिश्ते के बिना एक सरल डेटाबेस के लिए यह करते हैं, उपरोक्त आदेश खूबसूरती से काम करता है का उपयोग करने के मिल गया है।

लेकिन जब मैं अपने डेटाबेस पर एक ही आदेश का उपयोग करने की कोशिश की है कि यह एक अपवाद

[Doctrine\ORM\Mapping\MappingException] 

Property "employeeid" in "Organization_has_employees" was already declared, but it must be 
declared only once 

कह मैं अपने सभी क्षेत्र का नाम बदल दिया है ताकि है तालिका में से किसी में नहीं दोहराया नामों लेकिन फिर भी प्रयास विफल फेंकता ।

कृपया मुझे इसके साथ मदद करें। मैं अपने सिर को 3 दिनों से अधिक समय से तोड़ रहा हूं।

कार्तिक

उत्तर

12

प्रयोग के घंटे के बाद मैं इस समस्या में पता चला। जाहिर है यह सिद्धांत में नहीं है यह डेटाबेस है जिसे मैंने डिजाइन किया है। जब आप MySQL वर्कबैंक में कई से अधिक टेबल करते हैं तो आपको रिश्ते की पहचान करने के लिए मजबूर होना पड़ता है, जो एक और तालिका बनाते हैं और पैरेंट टेबल से समग्र कुंजी बनाते हैं। कृपया सुनिश्चित करें कि आप इस प्राथमिक कुंजी को अलग-अलग नाम दें या यदि संभव हो तो जमा कुंजी को हटा दें और इसे केवल एक गैर-पहचान संबंध के रूप में रखें। आईडी नामक एक और कॉलम जोड़ें और इस क्षेत्र को प्राथमिक कुंजी और ऑटो-नंबरिंग

सिद्धांत उपकरण में कैशिंग समस्या भी है, इसलिए कृपया सुनिश्चित करें कि जब भी आप कोई परिवर्तन करते हैं और इसे अपने ज़ेंड कॉन्फ़िगरेशन में बदलते हैं तो डेटाबेस का नाम बदलें ।

आशा है कि इससे किसी को वहां मदद मिलेगी। यदि आपको अभी भी समस्याएं हैं तो कृपया यहां अपने प्रश्न पोस्ट करें, मैं इसका उत्तर देने में सक्षम हूं।

+1

मुझे एक ही समस्या (त्रुटि) है, सिद्धांत के साथ: स्कीमा: बनाएँ। डेटाबेस खाली है। सिद्धांत फेंक रहा है: "myApp \ PersonBundle \ Entity \ Contact" में संपत्ति "संगठन" पहले ही घोषित कर दिया गया था, लेकिन इसे केवल – FMaz008

+0

@ FMaz008 Ya को दर्द का थोड़ा सा घोषित किया जाना चाहिए ... क्या आपने फ़ील्ड नामों को अद्वितीय बनाने के लिए प्रयास किया है ? – Karthik

+0

हाय @ कार्तिक। मेरी भी यही समस्या है। मुझे बिल्कुल पता नहीं है कि मुझे हटाने या संपादित करने की क्या ज़रूरत है। क्या मैं आपको अपना * दे सकता हूं। एमडब्ल्यूबी फाइल? अग्रिम धन्यवाद .. – Puzo

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