Ramy Yii: Tabeli dla aktywnej klasy rekordów nie można znaleźć w bazie danych
Mam nadzieję, że hivemind ma jeszcze kilka sugestii dotyczących radzenia sobie z tym błędem z Yii Framework. Dokładny błąd specyficzny dla naszej konfiguracji to:
CDbException Tabeli „użytkownicy” dla aktywnej klasy rekordów „Użytkownicy” nie można znaleźć w bazie danych.
Używam Yii Framework 1.1.11-dev z SVN, chociaż była to tylko próba rozwiązania problemu. Uruchomiliśmy najnowszą stabilną wersję 1.1.10.
Staramy się wdrożyć na naszym serwerze z kodem działającym w moim dev env. Czuję, że problem jest prawie na pewno różnicą w konfiguracji bazy danych, ale nie jestem pewien, gdzie go znaleźć.
Szukałem już tutaj i przeszukałem fora Yii, gdzie znalazłem ten problem wymieniony kilka razy. Sugerowane poprawki, które już próbowaliśmy, obejmują
usunięcie hosta i portu z dsnze schematem i bez schematu (np. „użytkownicy” i „public.users”)GRANT ALL ON DATABASE [dbname] TO postgresUdziel wszystkich w każdej tabeli w db za pomocą znalezionego kodututajŚrodowiska są następujące:
DEV - OSX 10.7, PHP 5.3.10, PostgreSQL 9.0.3PROD - FC15, PHP 5.3.10, PostgreSQL 9.0.7Błąd wskazuje, że tabela „użytkownicy” nie istnieje, chociaż wyraźnie to robi.
~$ 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
Nasza konfiguracja w protected / config / main.php
'db'=>array(
'connectionString' => 'pgsql:dbname=lppsync',
'emulatePrepare' => true,
'username' => 'postgres',
'password' => '',
),
Odpowiednią częścią modelu użytkowników jest
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';
}