如果我有一个关键任务数据库,需要定期备份,并将它作为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引擎,Google Apps脚本和Javascript
- 3. 从Google Apps脚本
- 4. Google Apps脚本DockPanel
- 5. Google Apps脚本[createServerClickHandler]
- 6. 如何在Google Apps脚本中进行NTLM身份验证?
- 7. 的iframe Google Apps脚本
- 8. 如何保持Google Apps脚本秘密?
- 9. 如何从HtmlUnit运行Google Apps脚本?
- 10. 如何为域部署Google Apps脚本?
- 11. 如何从Google Apps脚本输出HTML?
- 12. 如何使用此Google Apps脚本?
- 13. 从Google Apps脚本运行python脚本
- 14. 如何在google apps脚本中的scriptdb查询语句中分隔相应的列值
- 15. Google Apps脚本执行API
- 16. Google Apps脚本不良值
- 17. getRoot Google Apps脚本问题
- 18. VBA和Google Apps脚本
- 19. 使用Google Apps脚本
- 20. Google Apps脚本 - 集成XFrameOptions
- 21. Google Apps脚本挂起(javascript)
- 22. Parse Json - Google Apps脚本
- 23. Google Apps脚本替代ScriptProperties
- 24. Google Apps脚本getLastRow错误(
- 25. Google Apps脚本oAuth 2.0
- 26. Google Apps脚本查询MariaDB
- 27. Google Apps脚本中的StackExchange API身份验证
- 28. 如何使用Google Apps脚本清除Google表格中的列?
- 29. Google Apps脚本:何时使用getActiveSpreadsheet()
- 30. 只备份public_html的PHP备份脚本
是的,这是一个很好的解决方法,但我希望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