如果我有一個關鍵任務數據庫,需要定期備份,並將它作爲scriptdb存儲在GAS中,有什麼方法可以備份實際的數據庫文件嗎?看起來db是以一種使腳本在腳本之外不可見的方式嵌入的?如何備份Google Apps腳本的scriptdb
1
A
回答
1
我想我在上面找到了一個像樣的解決方案,在一個意想不到的地方。我可以使用Google Fusion Table/s - 而不是使用scriptdb,它們具有SQL類型的訪問權限,是可以導出,備份,查看等的具體文檔,可以充當我的應用的數據存儲區...
3
那麼,你可以隨時查詢你所有的值和JSON.stringify
他們。 如果您需要從中恢復數據庫,我可以注意到的唯一區別是每個項目ID都會改變。
下面是一個例子:
function backupDB() {
var db = ScriptDb.getMyDb();
var res = db.query({});
var array = [];
while(res.hasNext())
array.push(res.next().toJson());
var dbString = JSON.stringify(array);
Logger.log(dbString); //you'll obviously save this string somewhere else e.g. as a docs file
}
您可能還需要做到這一點的塊,因爲你的數據庫可能有太多數據的腳本來處理一次,像這樣。
我也覺得這個「備份」過程也應該由API來照顧。上面的代碼只是我的一個想法。
0
也許您可以將關鍵數據從scriptdb複製到Google Spreadsheet。鑑於其在谷歌開發人員的例子,我認爲這是一個有趣的選擇。
+0
是的,又一個很好的解決方法... – BruceM 2012-07-10 18:41:56
1
實際的答案是:你不存儲在ScriptDb的關鍵任務數據,原因是多方面的:
- appscript沒有SLA。谷歌有許多其他存儲有確保。
- 由於該數據庫不支持事務,因此無法保證批處理可能會處理兩次相同的數據(如果腳本在塊備份或還原過程中失敗)。
- 如果將ID存儲在數據庫中的其他對象內,它會變得複雜。
相關問題
- 1. Google Apps腳本中的ScriptDb配額
- 2. 如何從獨立的Google Apps腳本項目備份代碼?
- 3. 刪除Google Apps腳本ScriptDB中的重複項
- 4. 將Google Apps腳本連接到分析數據庫(ScriptDB替換)
- 5. Google Apps腳本ScriptDB不再處於一致狀態
- 6. Google Apps引擎,Google Apps腳本和Javascript
- 7. Google Apps腳本CoffeeScript
- 8. Google Apps腳本DockPanel
- 9. Google Apps腳本[createServerClickHandler]
- 10. 從Google Apps腳本
- 11. Google Site Apps腳本
- 12. Google Apps腳本:將電子表格保存爲本地備份的ODS
- 13. 如何在Google Apps腳本中進行NTLM身份驗證?
- 14. Google Apps腳本:無法從ScriptDB加載的對象中獲取數據
- 15. Google Apps腳本中的Highcharts
- 16. 的iframe Google Apps腳本
- 17. 如何從HtmlUnit運行Google Apps腳本?
- 18. 如何保持Google Apps腳本祕密?
- 19. 如何爲域部署Google Apps腳本?
- 20. 如何使用此Google Apps腳本?
- 21. 如何下載Google Apps腳本?
- 22. 如何從Google Apps腳本輸出HTML?
- 23. 如何停止執行Google Apps腳本?
- 24. 如何使用Google Apps腳本將數據從Google電子表格和ScriptDB插入BigQuery表格
- 25. 從Google Apps腳本運行python腳本
- 26. 如何從本地Python腳本調用Google Apps腳本
- 27. doPost兩次Google Apps腳本?
- 28. Google Apps腳本掛起(javascript)
- 29. 發佈Google Apps腳本庫
- 30. Google Apps腳本指導
是的,這是一個很好的解決方法,但我希望Apps腳本將有更多的東西嵌入。如果人們將要將關鍵數據委託給scriptdb,那麼只能以強大而經常的方式對其進行備份 – BruceM 2012-07-10 15:17:55
讓代碼自動備份數據(例如,使用時間驅動的觸發器)似乎很棒對我來說很強大,如果你有一些關鍵的應用程序腳本運行,那麼你應該是一個足夠好的開發人員來寫一個「關鍵」的備份。但是,是的,更「嵌入」的東西確實是非常好的。現在,如果你認爲這是一個「增強請求」而不是一個真正的問題,那麼你就錯了。你應該在[Apps Script Issue Tracker]中提交一個。(http://code.google.com/p/google-apps-script-issues/issues/list) – 2012-07-10 18:53:06
如果你遵循良好的做法來創建,使用和依賴在您的腳本創建的ID重新導入將沒有副作用。 – Luciano 2012-10-01 16:35:55