RavenDB,RavenHQ和Appharbor语言 - 第一个文档的文档大小错误



我有一个完全空的RavenHQ数据库,它链接到我的Appharbor应用程序。数据库当前使用的空间量为1.1mb,而我的青铜帐户的可用空间为25mb。数据库中以前有记录,但我在管理工作室中使用"删除集合"删除了它们。

我第一次打电话给会议。存储(我的对象),在我调用之前。保存更改(),我收到以下错误。

System.InvalidOperationException: Url: "/docs/Raven/Hilo/AccItems"
Raven.Database.Exceptions.OperationVetoedException: PUT vetoed by Raven.Bundles.Quotas.Triggers.DatabaseSizeQoutaForDocumetsPutTrigger because: Database size is 45,347 KB, which is over the allowed quota of 25,600 KB. No more documents are allowed in.

现在,文档绝对没有那么大,所以我不知道这个错误可能意味着什么,特别是因为我认为我什至没有在那个时候点击数据库,因为我还没有通过调用 SaveChanges() 关闭会话。有什么想法吗?这是代码本身。

    XDocument doc = XDocument.Parse(rawXml);
    var accItems = ExtractItemsFromFeed(doc);
    using (IDocumentSession session = _store.OpenSession())
    {
        var dbItems = session.Query<AccItem>().ToList();
        foreach (var item in accItems)
        {
            var existingRecord = dbItems.SingleOrDefault(x => x.Source == x.SourceId == cottage.SourceId);
            if (existingRecord == null)
            {
                session.Store(item);
                _logger.Info("Saved new item {0}.", item.ShortName);
            }
            else
            {
                existingRecord.ShortName = item.ShortName;
                _logger.Info("Updated item {0}.", item.ShortName);
            }
            session.SaveChanges();
        }
    }            
非常

欢迎有关此代码样式的任何其他评论,因为我不确定处理"更新现有项目或创建(如果不存在)"方案的最佳方法。

这里的答案如下。

RavenHQ 支持发现数据库确实过大,但似乎 Appharbor 品牌的 RavenHQ 控制面板中报告的大小不正确。我已经用上面发布的代码的先前错误版本填充了超过限制的数据库,因此我收到的错误消息实际上是正确的。

在不付费升级数据库的情况下解决此问题并不简单,因为不可能缩小数据库。由于我也无法删除我的单个 Appharbor/RavenHQ 数据库或创建另一个数据库,因此我可以选择创建一个全新的 Appharbor 应用程序,或者直接向 RavenHQ 注册一个新帐户。我选择了后者。RavenHQ品牌的控制面板与Appharbor的控制面板略有不同,因为它能够创建和删除数据库。

总而言之:使用 RavenHQ

作为 Appharbor 的附加组件似乎没有任何好处 - 您不妨去获得一个合适的免费 RavenHQ 帐户。

相关内容

  • 没有找到相关文章

最新更新