如何执行命令'appcfg rollback'?

在上传这个项目的时候,出现了一个networking故障,当上传过程只完成了31%时,我不得不停下来。 现在,当我点击将应用程序部署到谷歌应用程序引擎时,会产生以下消息:

com.google.appengine.tools.admin.HttpIoException: Error posting to URL: https://appengine.google.com/api/appversion/create?app_id=programworks&version=1& 409 Conflict Another transaction by user suhailgupta03 is already in progress for app: s~programworks, version: 1. That user can undo the transaction with "appcfg rollback". Unable to update app: Error posting to URL: https://appengine.google.com/api/appversion/create?app_id=programworks&version=1& 409 Conflict Another transaction by user suhailgupta03 is already in progress for app: s~programworks, version: 1. That user can undo the transaction with "appcfg rollback". 

我打开我的shell提示,并在那里键入appcfg rollback但我得到一个消息,这个命令是不found.I已经安装谷歌应用程序引擎作为netbeans插件。

我保留谷歌应用程序引擎jar子的path: /home/non-admin/appengine-java-sdk-1.6.6/lib/

请告诉我应该如何回滚以前的过程? 我非常需要上传战争文件。

Solutions Collecting From Web of "如何执行命令'appcfg rollback'?"

你想要appcfg.sh rollback (这是在path_to_your_app_engine_sdk/bin/ )。 appcfg对于每种类型的运行时(Python,Java,Go)都有不同的变体,所以建议的命令有点通用。

如果出于某种原因无法轻松访问项目的整个战争目录(例如,如果IDE仅向您提供.war文件),则可以执行以下操作:

  1. 制作一个名为war的目录。
  2. war文件夹内创建另一个目录并将其命名为WEB-INF
  3. 在文件夹WEB-INF放置两个xml文件,即web.xmlappengine-web.xml 。 这些应该分别具有已部署的web.xmlappengine-web.xml文件的内容。

然后运行以下shell命令(假定您从App Engine Java SDK的bin目录执行它):

 [non-admin@user bin]$ ./appcfg.sh rollback /home/non-admin/NetBeansProjects/PersonalSite/web/war 

如果您使用的是go appengine工具,那么您需要运行:

 $ cd [your go_appengine directory] $ ./appcfg.py rollback [your app directory with app.yaml in it] 

如果您使用的是Windows,请按照上述步骤进行操作,并在DOS提示符下运行命令。

C:\ eclipse-jee-helios-win32 \ eclipse \ plugins \ com.google.appengine.eclipse.sdkbund le_1.7.3 \ appengine-java-sdk-1.7.3 \ bin> appcfg.cmd rollback “C:\ home \ MyWeb即可\战争”

另一种简单的方法如下:

  1. 更改app.yaml中的版本号…
  2. 然后部署新版本,
  3. 最后通过谷歌应用引擎webform删除旧版本

编辑:

回答dg99的问题:您需要更改的版本代码取决于您(它是您的应用程序的版本)

这适用于我! (Win OS)

C:\ eclipse-jee-helios-win32 \ eclipse \ plugins \ com.google.appengine.eclipse.sdkbund le_1.7.3 \ appengine -java-sdk-1.7.3 \ bin> appcfg.cmd rollback C:\ home \ myweb \战争

如果你正在使用eclipse&maven build envrioment,也许你正在通过maven命令上传应用程序, appengine:update ,对吗?

那么,当你有这样的问题“409冲突”。 你可以在eclipse上使用maven命令 – > project-> run as-> maven build …-> “appengine:rollback”

尝试这个。 我通过这种方式解决了问题

试图回滚一段时间没有任何成功(我被提示用户/无尽的传递)我想这可能是因为我的两个阶段/因素认证,

所以下面的方法解决了这一切:

  1. D:\Java\eclipse\plugins\com.google.appengine.eclipse.sdkbundle_1.8.3\appengine-java-sdk-1.8.3\bin>打开命令提示符( cmd.exe )(或者查找您的位置appcfg.cmd别的地方)

  2. 键入: appcfg.cmd --oauth2 rollback D:/Java/workspace/my_app/war

  3. 然后我在浏览器中提示oauth2令牌,复制并返回到cmd而不是粘贴

  4. 而已! 部署到App Engine再次运行!

将其用于Android Studio中开发的后端:

 cd project_path/project_name/module_name/src/main appcfg.sh rollback webapp 

对于我来说,以下工作正常我的app.yaml所在的开发目录。

appcfg.py rollback .

我使用的是Python SDK,对于Java而言可能会有所不同,因为<app-directory>在那里被称为<war-location>

以下是使用命令提示符在Windows 7中回滚的步骤:

1)首先设置python的环境变量(这样命令提示符接受“python”命令)。

2)然后输入:“python”give_space“appcfg.py文件的路径”give_space“回滚”give_space“路径到你的项目”( 注意你应该在引号内指定你的路径 )。

当你使用Maven的时候, appengine:rollback命令起作用。 即使是Eclipse Maven项目,也是如此。

在Eclipse中回滚Maven遵循这个过程 –

运行 – >生成 – >目标(appengine:rollback) – >应用 – >运行

可以确认一些上面解释的答案。

如果使用mvn appengine:update进行部署,则可以使用mvn appengine:rollback进行回滚。