2

我的项目需要多数据库概念。我实时创建用户自动为该新用户创建新数据库。新用户登录切换到主数据库到用户数据库..如何做到这一点..我正在尝试 larval 5.4 版本。

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

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

4

1 回答 1

1

您可以创建模式并实时迁移它们,我之前在一个项目中已经这样做了。使用以下

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

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

然后,您可以使用Artisan::call('migrate', ['--database' => 'newdb'])它来迁移并选择播种它。

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

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

它非常复杂,有很多动人的部分,但这会让你开始。

于 2017-06-16T05:32:36.230 回答