2010-08-10 9 views
7

मैं बातचीत के बिना एक सिद्धांत 2 माइग्रेशन कमांड कैसे चला सकता हूं?मैं बातचीत के बिना एक सिद्धांत 2 माइग्रेशन कमांडलाइन कैसे चला सकता हूं?

वर्तमान में मेरे पास निम्न आदेश है जो मेरे यूनिट टेस्ट के सेटअप पर चलता है। लेकिन यह हमेशा हाँ/नहीं उपयोगकर्ता इनपुट के लिए संकेत देता है, भले ही मैं --no-interaction विकल्प का उपयोग करता हूं।

$input = new Symfony\Components\Console\Input\ArrayInput(
     array(
      'migrations:migrate', 
      '--configuration' => APPLICATION_PATH . '/../doctrine/migrations.xml', 
      '--no-interaction', 
      ) 
     ); 
$cli->run($input); 

उत्तर

19

मैं सिर्फ अपनी पोस्ट के ऊपर ठोकर खाई के रूप में मैं एक ही समस्या हो रही थी। इस दौरान सिद्धांत माइग्रेशन अपडेट किए गए प्रतीत होते हैं (मुझे लगता है: https://github.com/doctrine/migrations/commit/5b2751f149bc38d38870578f753c2193eb36e742)।

इसलिए

php app/console --no-interaction doctrine:migrations:migrate 

अब ठीक काम करता है।

+0

बहुत बढ़िया, बहुत बहुत धन्यवाद! यही वही है जो मैं ढूंढ रहा था! – barbieswimcrew

7

मैं टॉम ने अपने दृष्टिकोण पसंद नहीं है और वहाँ इस किया पाने के लिए एक अन्य तरीका है:

<?php 
$input = new Symfony\Components\Console\Input\ArrayInput(
    array(
     'migrations:migrate', 
     '--configuration' => APPLICATION_PATH . '/../doctrine/migrations.xml', 
    ) 
); 
$input->setInteractive(false); 
?> 
संबंधित मुद्दे