2012-11-23 6 views
9

क्या माइग्रेशन क्लास में .sql फ़ाइल को कॉल करना संभव है?क्या एक सिद्धांत माइग्रेशन में .sql फ़ाइल को कॉल करना संभव है?

मुझे उस विषय पर कुछ भी नहीं मिला।

+1

मुझे नहीं लगता कि आप कर सकते हैं। आपको इसे माइग्रेशन के बाद लॉन्च करना चाहिए। इस एसक्यूएल फाइल में क्या है? – j0k

+1

यह संग्रहित प्रक्रियाओं और विचारों को बनाता है और यह गतिशील रूप से – Hyperkubus

उत्तर

11

हां, बस उस .sql फ़ाइल को रखें और इसे माइग्रेशन क्लास से देखें।

$this->addSql(file_get_contents(__DIR__ . '/sql-dump.sql')); 
+1

बनाया गया है क्या यह सिद्धांत 1.2 का संदर्भ देता है। मुझे यह विकल्प नहीं मिल रहा है:/ –

+1

क्या होगा यदि एसक्यूएल में अर्धविराम से विभाजित कई प्रश्न हैं? –

+0

^यह शामिल एसक्यूएल फ़ाइल में कम से कम अर्ध-कॉलन द्वारा विभाजित कई प्रश्नों के साथ काम करता है (कम से कम सिम्फनी 3.x में; शायद सिम्फनी 2.8+ में भी काम करता है ... बस इसे जांचें)। – Sawant

0

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

<?php 

foreach (explode(';', file_get_contents(__DIR__ . '/sql-dump.sql')) as $sql) { 
    $this->addSql($sql); 
} 
+1

क्या होगा यदि एसक्यूएल क्वेरी के अंदर ';' होगा? यह सुरक्षित नहीं हो सकता है। हो सकता है "; \ n" बेहतर होना चाहिए। – luchaninov

+0

इस के लिए कोई आवश्यकता नहीं है, इस ('$ this-> addSql (file_get_contents (__ DIR__। '/sql-dump.sql'));') सेमी-कोलन द्वारा अलग-अलग प्रश्नों के मामले में काम करता है। – Sawant

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