как управлять базой данных в laravel - PullRequest
0 голосов
/ 30 января 2019

Я хочу использовать несколько баз данных, у меня есть 1db / user и 1 main db, уже настроен основной db в файле конфигурации, но как управлять базой данных пользователей ( db name = {user_id} _db).заранее спасибо

это мой код конфигурации

'main' => [
    'driver' => 'mysql',
    'host' => env('DB_HOST', '127.0.0.1'),
    'port' => env('DB_PORT', '3306'),
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    'unix_socket' => env('DB_SOCKET', ''),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'strict' => true,
    'engine' => null,
],

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Вы можете использовать следующую конфигурацию для нескольких дБ.

<?php
return array(

    'default' => 'mysql',

    'connections' => array(

        # primary 
        'mysql' => array(
            'driver'    => 'mysql',
            'host'      => 'ip1',
            'database'  => 'db1',
            'username'  => 'user',
            'password'  => 'pwd'
            'charset'   => 'utf8',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix'    => '',
        ),

        # secondary db connection
        'mysql2' => array(
            'driver'    => 'mysql',
            'host'      => 'dbip2',
            'database'  => 'db2',
            'username'  => 'user',
            'password'  => 'pwd'
            'charset'   => 'utf8',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix'    => '',
            'strict' => true,
            'engine' => null
        ),
        'sqlite' => array(
            'driver'   => 'sqlite',
            'database' => __DIR__.'/../database/db.sqlite',
            'prefix'   => '',
        ),
    ),
);

Затем вы можете использовать метод connection ():

$connection = ‘mysql2’;

Schema::connection($connection)->create(function(Blueprint $table) {

//

});
0 голосов
/ 30 января 2019

Создание БД для каждого пользователя бесполезно, даже если вы делаете это в целях безопасности или для каких-либо других целей.Полезная ссылка SO Производительность MySQL: несколько таблиц в сравнении с индексом для одной таблицы и разделов

Ваш вопрос (подключение к нескольким базам данных в Laravel) уже здесь дан ответ. Как использовать несколько баз данных в Laravel

ОБНОВЛЕНИЕ

Полагаю, вы хотите создавать новые базы данных на лету и подключаться к ним (безиспользуя конфигурацию .env).Создавайте динамические соединения вместо указания имени соединения при попытке соединения с новой базой данных.Затем, используя Config::set, вы можете создавать новые временные подключения, а затем использовать DB::connection с только что созданным временным именем.читать дальше https://lukevers.com/2015/03/25/on-the-fly-database-connections-with-laravel-5

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...