Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 18.05.2017 11:01:07

Префикс подключения при описании 2х баз данных

Привет,
понадобилось в laravel 5.4 в одном приложении работать и с postgresql и mysql
В файле config/database.php я прописал 3 настройки с разными префиксами для таблиц:

        'mysql_ci3' => [
            'driver' => 'mysql',
            'host' => 'localhost',
            'port' => 3306,
            'database' => 'ci3',
            'prefix' => 'rg_',
			  ... 
        ],

        'pgsql' => [
            'driver' => 'pgsql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '5432'),
            'database' => env('DB_DATABASE', 'forge'),
							'prefix' => 'pd_',
							...

Определяю модель  с подключением к первой настройке:

<?php

namespace App;
...
class RegexpItem extends Model
{
	protected $table = 'regexp_item';
	protected $primaryKey = 'id';
	public $timestamps = false;
	...
	protected $connection = 'mysql_ci3';
	...

Но при первом обращении в этой модели к префиксу DB::getTablePrefix() я получаю значение 'pd_' ...
А как правильно ?

Спасибо!

Не в сети

#2 18.05.2017 16:10:17

Re: Префикс подключения при описании 2х баз данных

видимо постгреc-подключение является default. \DB::connection('mysql_ci3')->getTablePrefix() что говорит?

Изменено constb (18.05.2017 16:10:36)

Не в сети

#3 18.05.2017 19:00:38

Re: Префикс подключения при описании 2х баз данных

constb пишет:

видимо постгреc-подключение является default. \DB::connection('mysql_ci3')->getTablePrefix() что говорит?

Помогло, спасибо!

Не в сети

#4 30.05.2017 17:52:25

Re: Префикс подключения при описании 2х баз данных

А где устанавливается дефолтовое подключение?
В моем config/database.php :

return [

    'default' => env('DB_CONNECTION', 'mysql_ci3'),
    
    'connections' => [

        'sqlite' => [
           ...
        ],

        'mysql_ci3' => [
	    ...
        ],

        'pgsql' => [
	    ...
        ],

При этом вызов без указания подключения

        $quoteModel= Category::from(  \DB::raw(DB::getTablePrefix().$category_table_name.' as cat' )); 

Подключает pgsql, который был изначально.
Или где-то еще прописано дефолтовое подключение ?

Не в сети

#5 31.05.2017 12:17:29

Re: Префикс подключения при описании 2х баз данных

php artisan config:clear попробуй сделать

Не в сети

#6 31.05.2017 15:01:20

Re: Префикс подключения при описании 2х баз данных

constb пишет:

php artisan config:clear попробуй сделать

Не помогло.
А какой каталог чистит эта команда ?
У меня в проекте по поиску "cache" - 187 совпадений
Нашел /storage/framework/cache/data - но вроде это не то ?

Не в сети

#7 31.05.2017 15:08:48

Re: Префикс подключения при описании 2х баз данных

невнимательно посмотрел, конечно же править строку в конфиге бесполезно. он берёт DB_CONNECTION из .env!

Не в сети

Подвал раздела