ハイブマインドが、Yii フレームワークからのこのエラーの処理について、さらにいくつかの提案をしてくれることを願っています。セットアップに固有の正確なエラーは次のとおりです。
CDbExceptionアクティブなレコード クラス "Users" のテーブル "users" がデータベースに見つかりません。
私は SVN の Yii Framework 1.1.11-dev を使用していますが、これは問題を解決するための試みにすぎません。最新の安定バージョン 1.1.10 を実行していました。
私の開発環境で動作しているコードを使用して、ライブ サーバーにデプロイしようとしています。問題はほぼ確実にデータベース構成の違いだと思いますが、どこにあるのかわかりません。
私はすでにここで検索し、この問題が数回リストされていることを発見した Yii フォーラムを検索しました。私たちがすでに試した提案された修正には以下が含まれます
- dsn からのホストとポートの削除
- テーブル名のスキーマあり/なし (つまり、「users」および「public.users」)
- GRANT ALL ON DATABASE [dbname] TO postgres
- ここにあるコードを使用して、データベース内の各テーブルにすべてを付与します
環境は次のとおりです。
- 開発 - OSX 10.7、PHP 5.3.10、PostgreSQL 9.0.3
- 製品 - FC15、PHP 5.3.10、PostgreSQL 9.0.7
このエラーは、テーブル「users」が存在しないことを示していますが、存在することは明らかです。
~$ 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
protected/config/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';
}