2011-07-14 25 views
2

工作在Yii框架我以前就跟 遷移./yiic遷移創建tbl_demo 它使我在那裏輸入的數值爲像數據庫遷移不警予

<?php 

class m110714_094912_tbl_demo extends CDbMigration 
{ 
    public function up() 
    { 
    $this-> createTable('{{tbl_demo}}', array(
     'id' => 'pk', 
     'name' => 'VARCHAR \'80\' NOT NULL', 
    )) 
    } 

    public function down() 
    { 
    echo "m110714_094912_tbl_demo does not support migration down.\n"; 
    return false; 
    } 

    /* 
    // Use safeUp/safeDown to do migration with transaction 
    public function safeUp() 
    { 
    } 

    public function safeDown() 
    { 
    } 
    */ 
} 

進入此之後遷移文件正顯示出消息像

New migration created successfully. 

但每當我檢查MySQL數據庫沒有用於tbl_demo沒有表中找到。我也把所有的價值放在安全,但它沒有任何結果。每件事情都很好,但不知道爲什麼新表不創造?請幫助我

回答

2

您應該轉到命令行並調用yiic migrate up,它會詢問您是否要應用tbl_demo遷移,並且在輸入「yes」時將執行代碼。當您應用遷移時不執行yiic migrate create -something-時,將顯示消息New migration created successfully.

如果您想再次應用遷移,則應刪除yiic爲記錄遷移而創建的「遷移」數據庫表中有關「tbl_demo」遷移的行。

+0

ya我已經做出了..Yiic遷移,並顯示出像移植成功的messge。但是在數據庫中找不到新表格。 – NewUser

+1

你還沒有說什麼是你的數據庫服務器(mysql?)我會做'name'=>'VARCHAR(80)NOT NULL'這是正確的語法,如果它沒有幫助,我會去CDbConnection的createTable命令並查看SQL查詢是如何構建的,然後使用echo將其轉儲並在轉儲後退出。一旦你看到了查詢的內容,就可以用其他sql客戶端自己嘗試一下,看看查詢本身是否全部正確。另外請記住,遷移使用console.php中的數據庫配置,而不是main.php - 你的console.php可能指向另一個數據庫? – ddinchev

+1

感謝好友它幫助我。其實我沒有連接ib console.php。我已經連接到main.php中的數據庫。所以非常感謝你:) – NewUser

2

我只是自己解決了這個問題。

答案是,默認的/protected/config/console.php出現在配置爲使用名爲testdrive.db的SQLite數據庫的框中。您必須將其配置爲與您的MySQL數據庫交談。