English 中文(简体)
Yii 框架:在数据库中找不到活跃记录类的表格
原标题:Yii Framework: The table for active record class cannot be found in the database

我希望蜂窝能有更多建议 来处理Yii Framewer的错误。 准确的错误, 具体针对我们的设置是:

CDbException The table "users" for active record class "Users" cannot be found in the database.

我使用来自SVN的Yii框架 1.111-dev, 尽管这只是试图解决这个问题。我们运行的是最新的稳定版本 1. 1. 1. 1. 10 。

我们正试图将在我的 dev ev ev 中起作用的代码部署到我们的实时服务器上。 我觉得问题几乎肯定是数据库配置的不同, 但我不确定在哪里找到它。

我已经搜索过这里,搜索了二二论坛, 发现这个问题被列了好几次。

  • removing the host and port from the dsn
  • with and without schema for the tablename (ie "users" and "public.users")
  • GRANT ALL ON DATABASE [dbname] TO postgres
  • Grant all on each table in the db using code found here

环境如下:

  • DEV - OSX 10.7, PHP 5.3.10, PostgreSQL 9.0.3
  • PROD - FC15, PHP 5.3.10, PostgreSQL 9.0.7

错误表明“用户”表不存在,尽管明显存在。

~$ psql -U postgres
psql (9.0.7)
Type "help" for help.

postgres=# dt
                    List of relations
 Schema |             Name             | Type  |  Owner   
--------+------------------------------+-------+----------
  { ... removed for brevity ... }
 public | users                        | table | postgres

我们在受保护/配置/main.php中的配置

 db =>array(
     connectionString  =>  pgsql:dbname=lppsync ,
     emulatePrepare  => true,
     username  =>  postgres ,
     password  =>   ,
),

用户模式的相关部分是

class Users extends CActiveRecord
{
    /**
     * Returns the static model of the specified AR class.
     * @param string $className active record class name.
     * @return Users the static model class
     */
    public static function model($className=__CLASS__)
    {
        return parent::model($className);
    }

    /**
     * @return string the associated database table name
     */
    public function tableName()
    {
        return  users ;
    }
最佳回答

结果发现数据没有导入到指定数据库。 相反,它被导入到用户数据库。 在此情况下, 后加gres 。 在此情况下, 修正是将数据再导入到正确的位置, 或者更改 Yii 配置( 我们的决定) 。 新的连接设置 :

 db =>array( connectionString  =>  pgsql:dbname=postgres ,  emulatePrepare  => true,  username  =>  postgres , password  =>   ,)
问题回答

iii < a href="http://www.yiiframework.com/doc/api/1.1/CDbconnection#schemaCachingDuration-detail" rel=“不跟随 nofollow noreferr">caches db元数据,也许这就是问题所在?尝试清除您的元数据缓存或禁用缓存 。

/ wwwroot/assets 文件夹通常包含这些缓存文件。

检查您的设备( 磁盘) 是否空间尚未用完 。

资料来源:引用对本问题的评论之一——

我在 MySQL 中也遇到类似的错误。 在我的案例中, 问题在于我在授予用户权利时犯了错误。 运行 MySQL 客户端时, 我得到了一个适当的“ 命令拒绝信息 ”, 但从Yii 的角度来看, 表格似乎根本不存在。

解决办法是适当赋予权利:

grant all on yiiap. * to yii @ yii 指定的本地主机;





相关问题
摘录数据

我如何将Excel板的数据输入我的Django应用? I m将PosgreSQL数据库作为数据库。

Postgres dump of only parts of tables for a dev snapshot

On production our database is a few hundred gigabytes in size. For development and testing, we need to create snapshots of this database that are functionally equivalent, but which are only 10 or 20 ...

How to join attributes in sql select statement?

I want to join few attributes in select statement as one for example select id, (name + + surname + + age) as info from users this doesn t work, how to do it? I m using postgreSQL.

What text encoding to use?

I need to setup my PostgreSQL DB s text encoding to handle non-American English characters that you d find showing up in languages such as German, Spanish, and French. What character encoding should ...

SQL LIKE condition to check for integer?

I am using a set of SQL LIKE conditions to go through the alphabet and list all items beginning with the appropriate letter, e.g. to get all books where the title starts with the letter "A": SELECT * ...

热门标签