2017-01-20 54 views
1

創建表我是很新,yii2,我使用Postgres的,我db.php文件 -錯誤而使用Yii2遷移

return [ 
     'class' => 'yii\db\Connection', 
     'dsn' => 'pgsql:host=localhost;port=5432;dbname=xxxx', 
     'username' => 'postgres', 
     'password' => 'abc', 
     'charset' => 'utf8', 
]; 

我有直接的Postgres創建一個表,獲取的數據成功使用ActiveRecord。 然後我就在up方法創建一個使用遷移表

./yii migrate/create logins 

成功地創建了遷移文件夾中的文件,然後我把下面的內容 -

public function up() 
{ 
    $this->createTable('logins', [ 
      'id' => Schema::TYPE_PK, 
      'name' => Schema::TYPE_STRING . ' NOT NULL', 
      'password' => Schema::TYPE_STRING . ' NOT NULL' 
    ]); 
} 

,併發射./yii migrate更新數據庫,但我得到以下錯誤 -

Yii Migration Tool (based on Yii v2.0.10) 
Exception 'yii\db\Exception' with message 'could not find driver' 
in /opt/lampp/htdocs/project/server/api/project/vendor/yiisoft/yii2/db/Connection.php:549 

有沒有我失蹤的步驟?或者在postgres連接中有一些問題?

+0

你在控制檯應用程序中配置了'db'組件嗎? – Bizley

+0

不,我可以告訴我怎麼做 – Shrikant

回答

2

我假設這是基本的模板。

確保您已配置db組件。

在你config/console.php文件檢查是否有dbcomponents部分,如:

// ... 
'components' => [ 
    // ... 
    'db' => require(__DIR__ . '/db.php'), 
    // ... 
], 

如果一切都是確定的,但錯誤仍然存​​在,你需要檢查,如果你有正確安裝pgsql驅動程序。

有關詳細信息,請參閱PDO Installation

+0

感謝您的回覆,是的,已經有這樣一個組件部分 – Shrikant

+0

因此,檢查是否安裝了驅動程序,看到我的答案更新。 – Bizley

+0

感謝您指出正確的方向 – Shrikant