如果我有一个任务关键数据库,需要定期备份,并将其存储为GAS中的scriptdb,有没有办法备份实际的数据库文件?似乎db的嵌入方式使其在脚本之外不可见?
答案 0 :(得分: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来处理。上面的代码只是我刚才的一个想法。
答案 1 :(得分:1)
我认为我在上面的问题中找到了一个不错的解决方案,在一个意想不到的地方。我可以使用Google Fusion表,而不是使用scriptdb,它们具有SQL类型的访问权限,是可以导出,备份,查看等的具体文档,并且可以充当我的应用程序的数据存储... < / p>
答案 2 :(得分:1)
实际答案是:您没有在Scriptdb上存储关键任务数据,原因有很多:
答案 3 :(得分:0)
也许您可以将关键数据从scriptdb复制到Google电子表格。鉴于其在Google开发人员中的一个例子,我认为这是一个有趣的选择。