2017-06-16 77 views
2

我需要为我的项目提供多数据库概念。我创建用户实时自动创建新的数据库为新用户。新的用户登录切换到主数据库到用户数据库..如何做到这一点..我试图幼虫5.4版本。Laravel如何实时创建数据库并像旧数据库一样创建数据库以及如何访问该数据库

1. 如何为新用户实时创建数据库?

2. 如何切换用户登录主数据库到用户数据库?

+0

此答案对您有用,https://stackoverflow.com/questions/20392180/creating-the-database-on-fly –

回答

1

您可以创建模式并实时迁移它们,我之前在项目中完成了这项工作。使用以下

DB::connection('mydb')->statement(DB::raw('CREATE DATABASE....BLAH BLAH BLAH'))

执行原始的查询,以创建新的数据库。你需要你的主连接来执行这些查询。

然后,您可以使用Artisan::call('migrate', ['--database' => 'newdb'])进行迁移并可以选择将其种子。

最后,您需要在您的数据库配置文件中有一个客户条目,用于确定用户连接到哪个模式,或者您可以使用Config::set(['my.user.db.config')设置此实时。

我为客户创建唯一数据库的策略是使用guid作为数据库名称,并在主数据库中保留主日志。当用户登录时,他们的数据库名将从主服务器读取,然后应用程序会立即切换他的连接。我的公司拥有数百个名为123151-2135151-5132123-545-231231的小型客户数据库,保持其独特性。

这是相当复杂的,有很多移动的部分,但这会让你开始。