我的Laravel項目使用MySQL。我想託管我的項目的演示版本,任何人都可以使用給定的憑證進行登錄,並執行任何允許他的角色進行的操作。當他註銷他所做的更改應該消失。同時,具有相同憑證的多個用戶可以操縱應該隔離的數據,而不必更改爲其他當前的數據庫。我怎樣才能做到這一點?如何設置演示版的MySQL數據庫?
回答
您可以編寫一個SQL文件,其中包含「重置」數據庫所需的所有SQL命令。例如,這可以是刪除所有記錄並用「默認」記錄預填充表格。每次用戶註銷時,您都可以觸發該腳本。
聽起來像編寫這樣的腳本會很困難和耗時,但是當您將數據庫「備份」到SQL文件時,大多數SQL客戶端可以爲您生成此類文件(當您備份到SQL文件時,它只是簡單寫入恢復數據庫所需的所有SQL命令)。
我希望這會有所幫助。
如果我必須這樣做,我會使用Docker(一種訪問linux容器的簡單方法)。
我想看看提供目標環境的整個堆疊在一個容器中,然後隨機URL提供代理: * .host.domain/ * host.domain // * host.domain:/
您的應用程序環境的副本會在容器中產生,配置爲將其內部端口80/443作爲其他號碼公開,然後您將通過創建虛擬主機/目錄爲用戶提供連接方式代理這個。
這樣,您的應用程序不需要處理任何奇怪的數據庫行/表/端口/名稱更改內部 - 它只需要應付在不同的URL後面運行。
我已經建立了這樣的事情背後nginx的(這讓我加載和卸載代理,而不影響現有會話),交付,否則將來自用戶的數據衝突遭受的應用環境 - 看http://docker.stat.auckland.ac.nz/
在這個例子中,當用戶請求一個實例時,應用程序目錄被安裝在/ srv/shiny /的docker實例中,只讀容器中的端口3838映射到主機上的某個7999 < <。
然後我創建一個模板下面,將其配置在文件夾中的我的nginx服務器讀取:
location /<random instance name>/
{
proxy_pass http://localhost:<port>;
proxy_redirect http://localhost:<port>/ $scheme://$server_name/;
}
並運行「systemctl重裝nginx的」以獲取新的實例後,移交uri回到用戶。
謝謝。這似乎是正確的解決方案。 – hash71
- 1. 微軟演示數據庫版權,開源演示數據庫?
- 2. 如何設置HornetQ演示
- 3. 設置MySQL數據庫
- 4. 設置MySQL數據庫
- 5. 如何在準備演示文稿或演示時設置Eclipse?
- 6. 如何設置HTML5 CSS演示
- 7. 如何設置dji L2 api演示?
- 8. 如何在HTML中設置索引數據庫的版本5
- 9. 多服務的MySQL數據庫設置
- 10. 設置mysql數據庫的問題
- 11. mysql數據庫表的設置日期
- 12. 設置較低的mysql數據庫
- 13. 如何配置PostgreSQL或MySQL以使用Sphinx設置數據庫?
- 14. Mysql:我如何向所有用戶授予對演示數據庫的選擇
- 15. 表演在MySQL數據庫與輸入
- 16. 如何設置數據庫表,數據庫設計
- 17. 如何將MySQL設置爲Rails 3中的默認數據庫?
- 18. 如何設置與OSGI的MySQL數據庫連接?
- 19. 優化演示數據的重置
- 20. 如何處理網站數據庫的演化設計?
- 21. Xirsys V3演示設置
- 22. 爲網站設置MySQL數據庫
- 23. 爲Amazon EC2設置mysql數據庫
- 24. Codeigniter Cpanel Mysql數據庫設置
- 25. MYSQL - 用戶數據庫設置
- 26. 幫助設置MySQL數據庫
- 27. 從MySQL數據庫設置時區
- 28. 使用mysql設置pyroCMS數據庫
- 29. MySQL數據庫設置問題
- 30. WSO2 EMM mysql數據庫設置
他們會做出什麼樣的改變?如果他們對數據庫中的值進行更改,那麼當他們註銷時,可以截斷這些表並簡單地對它們進行重新排序。 – James
問題是如果我截斷數據庫,然後其他用戶同時登錄會看到不一致的權利? – hash71
是的,他們會。但是,除非你爲每個用戶設置一個環境,否則它們會有不一致。 (例如,如果我刪除了一個用戶,那麼即使您沒有刪除它也會消失) – James