【问题标题】:yii migrate command doesn't work with postgresql databaseyii migrate 命令不适用于 postgresql 数据库
【发布时间】:2015-07-30 17:45:47
【问题描述】:

我安装了 Yii 2 高级模板。 CMD 中的“yii migrate”命令与默认 MySQL 数据库完美配合,它按预期使用表 migration 和 user 填充数据库(参见此处解释的步骤 3:@987654321 @)

但是“yii migrate”不适用于 postgresql 数据库。它会产生以下错误消息:

出了什么问题,或者缺少什么?如果我手动创建数据表(已经过测试),Yii 2 框架可以读取数据表,但是 migrate 命令不想工作。

postgresql 所需的 pdo 扩展在 php.ini 文件中被注释掉了。网页 requirements.php 显示 PDO PostgreSQL 扩展“通过”(没有错误或警告)。

common/config/main-local.php中我的db连接配置:

 '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
        ],

【问题讨论】:

    标签: postgresql yii2 migrate


    【解决方案1】:

    你的命令行 php 和你的 web 服务器 php 是不同的 php。 您需要在命令行 php.ini 中注释掉您的 postgres 驱动程序。 请在命令行中运行这些以获取更多信息(我不确定这些命令的 Windows 版本是什么,请 chk)

    which php
    php -i
    

    【讨论】:

    • 是的,就是这样,谢谢。命令是"where php"在windows中查找php.exe的路径,在我的机器上是C:\wamp\bin\php\php5.5.12\php.exe。我按照您的建议调整了同一文件夹中的 php.ini 文件,也就是说,注释掉了 extension=php_pdo_pgsql.dll 和 extension=php_pgsql.dll 行,并且“yii migrate”命令起作用了。我不确定,如果我的 web 服务器和控制台的 php.exe 不同,但各自的 ini 文件肯定不同。
    【解决方案2】:

    我在 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 ...)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-02
      • 2021-12-18
      • 2014-10-15
      • 1970-01-01
      相关资源
      最近更新 更多