丢桌子

时间:2011-04-13 04:26:27

标签: google-app-engine google-cloud-datastore

如何从GAE数据存储中轻松删除表格?

6 个答案:

答案 0 :(得分:7)

数据存储区是无模式的,没有表格。相反,每个实体都有一个类型名称,它只是一个区分该实体与其他类型的字符串。如果要删除某种类型的所有记录,可以使用数据存储区管理工具执行此操作,如文档here所示。请注意,这样做会使用您应用的配额,就像自己删除它一样 - 但它可能比您自己设计的解决方案更有效,更快。

答案 1 :(得分:3)

在GAE中没有丢桌子这样的东西。如果要删除某种实体。选择所有类型的记录。使用for循环并使用delete()删除它们。您仍然可以使用管理控制台删除记录。但是您无法在管理控制台中一次删除所有类型的实体。 Appengine sdk有自己的管理控制台可用于localhost,可在https://localhost:8080/_ah/admin访问。

答案 2 :(得分:1)

可能你可以试试这个,你需要做的就是启用数据存储管理员并选择表并删除所有数据。

https://cloud.google.com/appengine/docs/adminconsole/datastoreadmin#enabling_datastore_admin_for_an_application

答案 3 :(得分:0)

  • 好的,没有表只是种类,但问题是类似的:我想删除很多实体,但我想删除种类本身的元数据。
  • Nick Johnson提到了批量删除的解决方案,但我没有找到如何在Java和appengine-web.xml中使用它。
  • Abdul建议选择一种实体,然后逐一删除代码。它工作但不是最理想的,因为我必须使用许多数据存储区调用。我尝试过,在数据存储使用方面它很昂贵。但这个想法是明智的:我必须在我的应用程序中打开一个管理后门才能做到这一点。无法打开某些数据库工具,连接到GAE数据存储区并编写SQL命令。
  • 我的最终解决方案是使用删除查询在JPA中。例如:DELETE FROM MyKind t WHERE t.someProperty=someValue。我只是为了一个例子而写了'where'子句。应使用executeUpdate()调用此查询,该{{1}}将返回已删除实体的数量。
  • 任何答案都没有提到,如果我删除了某种类型的实体,那么种类本身(元数据)将从数据存储区中消失。
  • 稍后可以使用相同的名称和完全不同的字段创建另一种类型。
  • 请注意,当您删除某种实体时,您无法在管理控制台中创建该实例,或者至少我找不到它的可能性。

答案 4 :(得分:0)

App Engine的管理员提供了一个简单的UI来删除表格中的所有行。

首先,打开数据存储区管理员:转到“应用程序设置”并启用“数据存储区管理”。

现在,"数据存储区管理员"将出现在主菜单中(在数据部分下)。选择它,您的实体将被列出。您可以选择任何实体并选择"删除条目" (或备份实体和"复制到另一个应用程序")。

注意:这些选项将计入您的使用配额。

答案 5 :(得分:-1)

这是答案

转到https://appengine.google.com/,然后登录您的goole应用引擎帐户。

现在转到yourappengineproject - >数据存储查看器 - >查询。

现在点击您将获得查询编辑器的选项。键入查询TRUNCATE TABLE table_name,然后单击“运行查询”。

这样您就可以在应用引擎上删除您的表格。