[REDIS] Laravel 6 설정 () -> GET ( 'database.connections.mysql')는 DB와 일치하지 않는 : 연결 ()
REDISLaravel 6 설정 () -> GET ( 'database.connections.mysql')는 DB와 일치하지 않는 : 연결 ()
내 로컬 환경에서 여러 개의 입주자로 일하고 레디 스 (인증 필요). 내가 대리를 사용하고있는 프로젝트를 제공합니다.
이 경우를 위해 나는이 두 연결을 해결하고 있습니다 :
- basic_foo (is defined in my .env)
- tenant_foo (is the one to change to during a request)
지금까지 나는 성공적과 같이 연결을 변경 :
config()->set('database.connections.mysql',
array_merge(
config()->get('database.connections.mysql') ,
['database' => 'tenant_foo']
);
그러나, 지금은 유지 또는 기본 연결로 다시 떨어지는 쿼리 빌더에 문제를보고하고있다.
내가 실행할 때 tenant_foo의 예상 연결 결과 (레디 스에 대한 동일) 도착
dd(config()->get('database.connections.mysql'));
내가 실행할 때 내가 basic_foo의 잘못된하지만 분명히 활성 결과를 얻을 수
dd(\DB::connection()); // returns Illuminate\Database\MySqlConnection
전부 그래서 응용 프로그램은이를 분명히 \ 데이터베이스 \ QueryException를 반환합니다
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'basic_foo.table_bar' doesn't exist...
어디서 검색해야
'tenant_foo.table_bar'
는 config 배열이 basic_foo 동일하게 유지로 간단하게 아래처럼 tenant_foo에 데이터베이스 이름을 변경하면, 충분하지 않습니다.
\DB::connection()->setDatabaseName('tenant_foo');
해결법
-
==============================
1.동적으로 변경 데이터베이스 이름에 당신은 사용해야합니다 :
동적으로 변경 데이터베이스 이름에 당신은 사용해야합니다 :
DB::disconnect(); Config::set('database.mysql.database', 'tenant_foo'); DB::reconnect();
from https://stackoverflow.com/questions/59580981/laravel-6-config-getdatabase-connections-mysql-not-matching-dbconnection by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 사용 Predis, 어떻게 SET (즉, 저장) 다차원 연관 배열? (0) | 2020.01.09 |
---|---|
[REDIS] 어 그리 게이터 + 레디 스를 사용하여 교착 상태 (0) | 2020.01.09 |
[REDIS] 다중 노드 인스턴스에서 공유 IO 객체 (0) | 2020.01.09 |
[REDIS] JSON 문자열의 직렬화 복원시 이름 공간 변경 처리 (0) | 2020.01.09 |
[REDIS] 레디 스 + Node.js를이 - 어떻게 값을 검색 할 (0) | 2020.01.09 |