2017-06-16 62 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的小型客戶數據庫,保持其獨特性。

這是相當複雜的,有很多移動的部分,但這會讓你開始。