我安装了Yii 2高级模板。 " yii迁移" CMD中的命令与默认的MySQL数据库完美配合,它按预期使用表 migration 和 user 填充数据库(参见此处解释的步骤3:https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide/start-installation.md)
但是" yii迁移"不使用postgresql数据库。它会产生以下错误消息:
出了什么问题,或者缺少什么?如果我手动创建数据表(已经过测试),Yii 2框架可以读取数据表,但是迁移命令并不想工作。
postgresql所需的pdo扩展在php.ini文件中被注释掉了。网页 requirements.php 显示"已通过" (没有错误或警告)PDO PostgreSQL扩展。
我的db连接配置在common / config / main-local.php中:
'components' => [
'db' => [
'class' => 'yii\db\Connection',
'tablePrefix' => 'tbl_',
'dsn' => 'pgsql:host=localhost;port=5432;dbname=mytestdb',
'username' => 'postgres',
'password' => 'tuparnix',
'charset' => 'utf8',
// see: http://stackoverflow.com/questions/26436024/how-to-set-default-schema-in-yii2
'schemaMap' => [
'pgsql'=> [
'class'=>'yii\db\pgsql\Schema',
'defaultSchema' => 'public' //specify your schema here
],
], // PostgreSQL
],
答案 0 :(得分:1)
你的命令行php和你的web服务器php是一个不同的PHP。 你需要在命令行php.ini中注释你的postgres驱动程序。 请在命令行中运行这些以获取更多信息(我不确定这些命令的windows版本是什么,请chk)
which php
php -i
答案 1 :(得分:0)
我在Windows中遇到同样的问题但不是Linux。也许,那来自驱动程序php_pdo_pgsql + libpq.dll。 你的phpinfo(),Postgresql 8.3.3(windows)或9.2.1(linux)中哪个版本不兼容。从这一边看。 您在Windows上使用的服务器是什么? (xampp,easyphp,WampServer)和什么版本的php(5.4,5.5,5.6 ......)。