2012-11-15 17 views
8

मेरे पास कुछ फ़ील्ड के साथ "my_table" तालिका है। मैं माईबंडल में एंटीटी उत्पन्न करना चाहता हूं "my_table"। लेकिन मैं माईबंडल में सभी इकाइयों को फिर से बनाना नहीं चाहता हूं। मैं यह कैसे कर सकता हूं?symfony2 में मौजूदा तालिका से इकाई कैसे उत्पन्न करें?

+3

http : //symfony.com/doc/2.0/cookbook/doctrine/reverse_engineering.html –

उत्तर

15

यहाँ जिस तरह से आप यह कर सकते हैं,

प्रथम चरण है, डेटाबेस आत्मनिरीक्षण और इसी xml या YML मेटाडाटा फ़ाइलें उत्पन्न करने के लिए सिद्धांत पूछना।

php app/console doctrine:mapping:convert [xml|yml] Path/To/MyBundle/Resources/config/doctrine/metadata/orm --from-database --force --filter=MyTable 

दूसरा कदम, स्कीमा आयात और निम्न दो आदेशों को क्रियान्वित करने से संबंधित इकाई वर्गों का निर्माण करने के सिद्धांत के लिए कहें।

php app/console doctrine:mapping:import MyBundle [xml|yml|annotation] --filter=MyTable 

php app/console doctrine:generate:entities Path\To\MyBundle\EntityFolder\\MyTable 

दस्तावेज की How to generate Entities from an Existing Database खंड पर एक नजर डालें

+1

अंतिम आदेश में, मैं 'पथ \ To \ MyBundle \ EntityFolder \\ MyTable के बदले में 'MyBundle: MyTable' शॉर्टकट का उपयोग करने में सक्षम था ' – Nate

2
php app/console doctrine:mapping:import "MyCustomBundle" xml --filter=MyMatchedEntity 
6

सरल कार्य समाधान Symfony 2.7 विकल्प एनोटेशन और के लिए के लिए [/ xml/YML] देख http://symfony.com/doc/current/cookbook/doctrine/reverse_engineering.html

में 3 आदेशों करना 3 कदम:

कमांड # 1:

$ php app/console doctrine:mapping:import --force AppBundle xml --filter="Meeting" 

आउटपुट:

लेखन C: \ XAMPP \ htdocs \ localxyz \ src \ AppBundle/संसाधन/config/सिद्धांत/Meeting.orm.xml


कमान # 2:

$ php app/console doctrine:mapping:convert annotation ./src/AppBundle/Entity --from-database --filter="Meeting" 

आउटपुट:

प्रसंस्करण इकाई "बैठक"

निर्यात "एनोटेशन" मैपिंग जानकारी "C: \ XAMPP \ htdocs \ localxyz \ src \ संस्था" के लिए


कमान # 3:

$ php app/console doctrine:generate:entities AppBundle:Meeting --no-backup 

आउटपुट:

जनरेट कर रहा है इकाई "AppBundle \ इकाई \ बैठक" AppBundle \ इकाई \ बैठक

पैदा जहां:

AppBundle वास्तव में अपने "AppBundle" 2 में है।7 सिम्फोनी बैठक लक्ष्य तालिका (केस संवेदी)

सुनिश्चित करने के लिए है, इस निर्देशिका की जाँच करें:

C: \ XAMPP \ htdocs \ myproj \ src \ AppBundle/संसाधन/config/सिद्धांत/Meeting.orm .xml

C: \ XAMPP \ htdocs \ myproj \ src \ AppBundle/संसाधन/config/सिद्धांत/MeetingOriginal.orm.xml

और यह सुनिश्चित करें कि आप केवल तालिका आप बनाना चाहते हैं के लिए .xml फ़ाइलें है बनाना इकाई वर्ग फाइलें और कोई अन्य नहीं।

यह मेरे लिए बहुत अच्छा काम करता है।

विवरण के लिए कृपया इसे पढ़ें: http://symfony.com/doc/current/cookbook/doctrine/reverse_engineering.html

+0

यह एक defaul के लिए काम करेगा टी इकाई प्रबंधक। यदि आपको किसी भिन्न डेटाबेस से डेटा खींचना है तो नीचे पैरामीटर --em = "एंटीटी प्रबंधक नाम" प्रदान करें –

0

हालांकि यह एक पुरानी पोस्ट है, लेकिन निम्नलिखित अगर किसी को हो जाता है त्रुटि,

Database does not have any mapping information.

चेक

अपनी मेज नाम blog_post तो में है, तो फिल्टर विकल्प BlogPost का उपयोग करें और blog_post

संदर्भ: https://stackoverflow.com/a/27019561/6504104

हालांकि यह ऊपर लेकिन मैं इसे याद किया जवाब से आच्छादित है और इस त्रुटि

तो मैं इस स्पष्ट

धन्यवाद करना चाहता था हो रही थी ...

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