2012-11-19 2 views
0

PostgreSQL을, 오라클 및 기타 여러 DBMS의 사용 SCHEMA, 그래서, 테이블 이름은Cake로 테이블 이름에 테이블 스키마를 설정하는 방법?

schema_name.table_name 

그러나 CakePHP의 매뉴얼은 이것에 대해 anithing 말을하지. CakePHP 기본값에서 모델, 뷰 및 컨트롤러 이름은 어떻게됩니까? 전 접두사와 같은 솔루션을 사용할 수 있습니다. 즉, 모든 데이터베이스 작업에서 동일한 스키마 이름이 사용됩니다.


PS1 : method Modelschema과 혼동하고,이 방법을 액세스하는 방법에 대한 질문이 될 수 없습니다 바랍니다.

PS2 : Bill's 2006 solution은 업데이트되지 않았으며 (저는 CakePHP2를 사용하고 있습니다) "공식 cakePHP 솔루션"이 아니기 때문에 더 좋지 않습니다.

PS3 : database.php에 일부 스키마 속성이 있습니까? CakePHP 문서에 대한 링크는 무엇입니까? 나를 위해

+0

를 사용해야합니다, 같은 방법입니다 스키마를 database.php ... 또는 쿼리 당 스키마를 선택하도록 요청하고 있습니까? – domsom

+0

글쎄, 나는 두 가지 해결책이 필요하다. 그러나 첫 번째 것은 좋은 시작이다 ... PS3을 보자. 접두어 'class DATABASE_CONFIG {... $ default'schema '=>'MySCHEMA ', ...와 같이 지정할 수있다. ..}'? –

답변

1

좋은 소식은, 다른 문서 또는 예,하지만 출발점 ... CakePHP의에서

1

이 더 많은 데이터베이스 구성을 정의 없어야합니다 ... CakePHP 2.0 documentation about SQL-Schema있다. CakePHP의 2에서

는 :

  • 이 모델에서 올바른 스키마를 사용하는 스키마의 모든 새로운 CONFIGS을 만들고, 설정에 '스키마'PARAM을 설정

예 : 데이터베이스 conf :

public $default = array(
     'datasource' => 'Database/Postgres', 
     'persistent' => false, 
     'host'  => 'localhost', 
     'login'  => 'my_db_user', 
     'password' => 'my_db_passw', 
     'database' => 'my_project_db', 
     'prefix'  => '', 
     'encoding' => 'utf8', 
     'schema'  => 'postgres' 
    ); 
public $other_schema = array(
     'datasource' => 'Database/Postgres', 
     'persistent' => false, 
     'host'  => 'localhost', 
     'login'  => 'my_db_user', 
     'password' => 'my_db_passw', 
     'database' => 'my_project_db', 
     'prefix'  => '', 
     'encoding' => 'utf8', 
     'schema'  => 'other_schema' 
    ); 

당신이 모델에서 사용하려면 : CakePHP3에서

class AppModel extends AppModel { 
    public $useDbConfig = 'other_schema'; 
} 

은이 데이터베이스가 설정/app.php이며 당신은 지정

use Cake\Datasource\ConnectionManager; 
$connection = ConnectionManager::get('default'); 
관련 문제