阅读备份GAE's Datastore,其中:
我们强烈建议您在备份或还原期间将应用程序设置为只读模式...
经过粗略检查,出现,唯一的方法是通过GAE网络管理界面,您可以停用或重新启用在某个页面内写入。
我想编写一些Ant构建文件和/或shell和/或Python脚本,这些脚本允许我自动备份/恢复我的GAE应用程序的数据存储区。这意味着我需要一种方法来自动启用/禁用写入(将我的应用程序放入和转出“只读”模式)到我的数据存储区,所有这些都来自一些脚本(就像我说的,Ant,bash或Python)。
所以我问:这有可能吗?或者这是必须<手动“完成的事情(通过网络管理界面)?提前谢谢!
答案 0 :(得分:3)
The Capabilities Python API是您可以使用的,您可以像DataStore写的那样阅读应用程序的某些功能状态。不幸的是,这个Api只有读取状态的方法,但不能用于设置状态。
<强>编辑:强>
由于代码必须参考Capabilities API来获取App引擎中每个功能的状态,并避免因超额配置,系统维护等而导致的故障......一种可能的解决方案是在前面放置一种接口标志内的Capabilities API用于禁用每个功能。
伪代码,即:
class DatasToreWriteCapabiliti{
boolean DATASTORE_WRITE = true;
public disable(){ DATASTORE_WRITE = false;}
public enable(){ DATASTORE_WRITE = true;}
public CapabilityStatus status(){
if(DATASTORE_WRITE == false) return CapabilityStatus.DISABLED;
CapabilitiesService service = CapabilitiesServiceFactory.getCapabilitiesService();
return service.getStatus(Capability.DATASTORE_WRITE).getStatus();
}
}
答案 1 :(得分:1)
我认为你对'将应用程序设置为只读模式'的含义感到困惑:你认为这是GAE提供的服务,但它实际上意味着,在你的应用程序中,你创建了一个模式在执行备份时阻止写入。
我希望Web界面提供的可选只读模式不是为了在备份期间冻结而设计的,而只是管理数据存储的状态。