我希望蜂窝能有更多建议 来处理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 ;
}