2014-09-13 90 views
0

我希望動態地創建新數據庫,具有特權的數據庫用戶和密碼,併爲每個新用戶在Laravel 4中實時創建新數據庫中的某些表。這是針對多租戶網站的。在Laravel 4中快速創建新數據庫4

什麼是最好的解決方案?

謝謝。

回答

1

這不是你的第一個數據庫連接很容易,但你必須執行原始的語句,因爲數據庫的建立是沒有可用的連接方法:

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(...);