Создайте новую базу данных на лету в Laravel 4

Я хочу динамически создавать новую базу данных, пользователя базы данных и пароль с привилегиями, создавать некоторые таблицы в новой базе данных на лету в Laravel 4 для каждого нового пользователя. Это для сайта с несколькими арендаторами.

Какое лучшее решение?

Благодарю.

Это не ваше первое подключение к базе данных, это просто, но вам придется выполнять необработанные инструкции, поскольку создание базы данных недоступно в качестве методов подключения:

DB::statement(DB::raw('CREATE DATABASE <name>')); 

Для этого вы можете использовать вторичное соединение:

 <?php return array( 'default' => 'mysql', 'connections' => array( 'mysql' => array( 'driver' => 'mysql', 'host' => 'host1', 'database' => 'database1', 'username' => 'user1', 'password' => 'pass1' ), 'store' => array( 'driver' => 'mysql', 'host' => 'host2', 'database' => 'database2', 'username' => 'user2', 'password' => 'pass2' ), ), ); 

Затем вы можете, во время загрузки приложения, изменить базу данных вторичного соединения:

 DB::connection('store')->setDatabaseName($store); 

или

 Config::set('database.connections.store', $store); 

И используйте вторичное соединение в своих запросах:

 $user = User::on('store')->find(1); 

или

 DB::connection('store')->select(...);