@gudron

Laravel. Разные пользователи БД для web-приложения и миграции, возможно ли?

Как в Laravel5 можно сделать разных пользователей базы данных для Веб-приложения и для миграций.
Хотелось бы обойтись все тем-же .env файлом.

Ну и так же интересует такой кейс:
разные пользователи БД на ту часть ВЕБ-приложения которая доступна всем посетителям и на часть являющуюся административной.
Ну например понятно что посетитель не может удалять товары или других пользователей, а значит и привелегии БД пользователя на эти таблицы можно выключить.
Не очень бы хотелось устраивать свистопляску с конфигами для базы данных на уровне роутов.
  • Вопрос задан
  • 2574 просмотра
Решения вопроса 1
@gudron Автор вопроса
В итоге все разрешилось довольно просто, в bootstrap/app.php добавил:

if($app->runningInConsole()) {

    $app->loadEnvironmentFrom('console.env');

} else {

    if(Illuminate\Http\Request::capture()->segment(1) == 'admin_url' ){
        $app->loadEnvironmentFrom('web_admin.env');
    } else {
        $app->loadEnvironmentFrom('web_client.env');
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@naneri
PHP разработчик.
в env файле после:

DB_HOST=localhost
DB_DATABASE=db
DB_USERNAME=name
DB_PASSWORD=pass


ставите:
DB_DATABASE2=db2


потом в app/config/database

создаете запись mysql2 и там всё тоже самое что и в обычной записи mysql, но вместо
env('DB_DATABASE', 'forge')

ставите
env('DB_DATABASE2', 'forge')


Потом в любой модели которая не в дефолтной БД пишете
protected $connection = 'mysql2';


Если английский шарите вот тут классно объясняется.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы