当前位置: 首页 > 知识库问答 >
问题:

已删除的实体继续使用数据存储管理返回

施令雪
2023-03-14

我正在尝试将数据存储从一个应用程序复制到另一个应用程序(live to dev server)。我首先需要删除dev服务器(我正在使用的实际dev应用程序,不要与本地dev服务器混淆)上的所有实体。我正在数据存储管理控制台中执行此操作,但在该过程完成后,仍然保留_GAE_MR_MapReduceState_GAE_MR_ShardState实体。据我所知,在删除过程中,这些应该是临时的。此外,偶尔当我去datastore管理控制台时(大约一半的时间),我也会看到一些我删除的实体再次出现。我又删除了几次。

我在datastore查看器中没有看到它们,但我不知道是否总是这样。我还没看到他们再次出现在这个视图中。在datastore查看器中,只有_AE_Backup_Information_AE_Backup_Information_Kind_Files_AE_Backup_Information_Kind_Type_Info_AE_Datastoreadmin_Operation类型的实体。在此视图中看不到_gae_mr_mapreduceState_gae_mr_shardstate实体。

更新:我刚刚能够在datastore查看器中捕捉到一个已删除的实体。虽然这里只有一个被删除的实体类型和一个可见的实体(之前我看到的是3或4个实体类型和数千个实体)。在datastore viewer中捕捉到它之后,我立即转到datastore管理控制台,发现在这里可以看到相同的实体类型,尽管在本例中是两个实体类型。我这次也没有在数据存储管理中找到_gae_mr_mapreduceState_gae_mr_shardstate以及_ae_backup_information_ae_backup_information_kind_files_ae_backup_information_kind_type_info 实体。结束更新

我尚未尝试删除数据存储管理控制台中的_GAE_MR_MapReduceState_GAE_MR_ShardState实体。这似乎有点不安全,因为这些实体是在删除操作期间创建的,我不知道它会做什么。我会尝试在datstore查看器中删除它们,但它们没有显示在那里。

我的已删除实体出现在数据存储管理控制台_AE_backup_information_AE_backup_information_kind_files_AE_backup_information_kind_type_info_ae_datastoreadmin_operation实体中的那些时候也是可见的。所以这也很奇怪。

任务队列中没有任务,也没有作业正在运行。

这是某种同步问题吗?缓存是否在某处未更新?有什么办法我可以重置一些东西来清除这些实体吗?

更新2:我尝试了刷新Memcache,但这并没有起到什么作用。这些实体继续显示在datastore管理控制台中,几乎是100%的时间。但是,自从我删除了之前出现的实体之后,我就没有看到任何被删除的实体出现在数据存储查看器中。

更新3:我刚刚尝试在另一个应用程序中执行相同类型的数据存储删除操作,结果我得到了相同的损坏。我首先创建了一个备份,然后选择和删除了所有实体,这两个操作都是从数据存储管理控制台进行的。

删除操作作业已完成。它们会显示在已完成的操作下。任务队列中不再留下作业。但是所有的实体在数据存储管理控制台中都是可见的!我删除了10个实体类型,大多数有几十个实体,一个有几千个。在datastore管理控制台中,每一个实体类型都会以相同数量的实体再次列出。

共有1个答案

何和惬
2023-03-14

看起来您在开发应用程序中设置了旧样式的导出。您可能应该检查您的cron.yaml并禁用这些导出。理想情况下,您将使用托管导入/导出服务切换到较新的(且较便宜的)导出。对于批量删除,当前的建议是使用带有批量删除模板的云数据流。托管导入/导出和基于云数据流的删除都不会使用项目中的云数据存储数据库,而旧样式的导出和删除都将使用您的云数据存储数据库。

 类似资料:
  • 我目前正在尝试使用spring数据存储库删除我的一些实体。delete调用工作时没有任何异常/错误消息,但之后不会删除实体。 这些是我的实体: 而且 存储库非常简单: delete调用类似于 有什么想法为什么这个变化没有反映在数据库中吗? 编辑1: 我找到了变通办法,但我还是不明白真正的问题是什么。如果我像这样删除帖子(有几个例外,因为违反了约束,但帖子仍然会被删除),它就“起作用”了: 编辑2:

  • 将现有存储库数据库迁移到其他数据库可能包括迁移到同一服务器中的其他数据库,或迁移到不同操作系统上的数据库(例如,从 Windows 到 macOS)。 如果你想迁移你的存储库数据库,请按照下列步骤操作: 通过运行命令,或使用通知区域或菜单栏中的图标来停止 Navicat Monitor 服务。 在你的数据库管理工具中,将当前的存储库数据库(所有表的结构和数据)复制到新的存储库数据库。 启动 Nav

  • 我在我的react本地应用程序中使用Firebase实时数据库。大多数事情都是通过REST API云函数来完成的。app中很少东西直接使用实时数据库。最近,我发现我数据库中的所有数据都被莫名其妙地删除了。甚至数据库中不再使用且未在我的应用程序/云功能的源代码中引用的部分也消失了。 问题发生在两个项目及其数据库(生产/测试)中。我必须使用备份来恢复它们,但即使没有人使用应用程序(例如,在测试环境中)

  • 我使用以下方法根据某个 where 条件删除一组对象,但实际上删除的对象数可能小于传递的集合。如何获取已删除实体的实际计数 http://docs . spring . io/spring/docs/2.5 . x/API/org/spring framework/ORM/hibernate 3/hibernate template . html # delete all(Java . util

  • 现在,在我的代码中,如果我更改名称并添加一个体验,然后点击save按钮,CrudRepository的save函数通过保存user对象来解决这个问题,因为我的所有项目都与注释@OneToOne、@OneToMany和@ManyToOne连接。 我的问题是,如果我换个名字,增加一个经验,去掉另一个经验怎么办?CrudRepository中的save函数不将从frontend来的对象中删除的实体视为D