2017-01-20 34 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