2014-09-13 87 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(...);