2015-12-30 7 views
5

के साथ तालिका नाम का नाम बदलें मैंने हर जगह बहुत अधिक खोज की है लेकिन मुझे कुछ भी नहीं मिला।सिद्धांत माइग्रेशन

क्या डेटा खोने के बिना तालिका के नाम को बदलने के लिए कोई आदेश या प्रक्रिया है (इसलिए सिद्धांत सिद्धांत के अंदर)?

मूल रूप से

, कुछ है कि here

मैं मैन्युअल doctrine:migrations:generate साथ माइग्रेशन फ़ाइल में लिखने चाहिए से लिया

RENAME TABLE old_table TO new_table; 

या

ALTER TABLE old_table RENAME new_table; 

MySQL आदेशों की तरह कुछ का उत्पादन करेगा?

+0

आप किस डेटाबेस सिस्टम का उपयोग करते हैं? – StoryTeller

+0

@StoryTeller MySQL, लेकिन मुझे लगता है कि एक "सार्वभौमिक" विधि मौजूद होना चाहिए – DonCallisto

उत्तर

6
  1. दिए गए इकाई के लिए तालिका का नाम बदलें।

    /** @Entity @Table(name="new_table_name") */ 
    class MyEntity { ... } 
    
  2. एक नया माइग्रेशन उत्पन्न करें।

  3. up() और down() विधियों की सामग्री मिटाएं और उन्हें कस्टम एसक्यूएल (ALTER TABLE ... RENAME TO ...) से प्रतिस्थापित करें।

ध्यान रखें कि प्रवास जनरेटर उपयोगिता/अर्द्ध स्वचालित उपकरण के रूप में है।

+0

हां, इसलिए, मूल रूप से, मैं 'php app/console सिद्धांत चलाकर इसे प्राप्त कर सकता हूं: माइग्रेशन: जेनरेट करें' (वह, वास्तव में, मैं क्या हूं ' मैंने अभी तक किया है – DonCallisto

+0

हां, यह सही दृष्टिकोण है। ;) – Crozin

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