2012-06-12 2 views
2

내 Appharbor 응용 프로그램에 연결된 완전히 비어있는 RavenHQ 데이터베이스가 있습니다. 데이터베이스가 현재 사용중인 공간의 양은 청동 계정에서 사용 가능한 25MB 중에서 1.1MB입니다. 이전에 데이터베이스에 레코드가 있었지만 관리 스튜디오에서 "컬렉션 삭제"를 사용하여 데이터베이스를 삭제했습니다.RavenDB, RavenHQ 및 Appharbor - 첫 번째 문서의 문서 크기 오류

처음 session.Store (myobject)를 호출하고 .SaveChanges()를 호출하기 전에 다음 오류가 발생합니다. 내가 '나는 심지어 내가 천국 있기 때문에 그 시점에서 데이터베이스를 공격했다고 생각하지 않습니다 특히 지금

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(); 
     } 
    }    

다른 의견은 환영 할 것이다.

+1

ravenhq 지원부에 문의하십시오. 이상한 점이 있습니다. –

+0

유용한 답변이 있으면 감사 드리며 여기서 업데이트하겠습니다. – centralscru

+0

@centralscru 혹시이 문제에 대한 응답을 얻었습니까? – friism

답변

2

여기에 대한 답변은 다음과 같습니다.

RavenHQ 지원은 데이터베이스가 실제로 크기가 크지 만 Appharbor 상표가 붙은 RavenHQ 제어판에보고 된 크기가 올바르지 않은 것으로 보입니다. 위에 게시 된 코드의 이전 결함 버전으로 한도를 초과하여 데이터베이스 방식을 채웠으므로 수신 한 오류 메시지가 실제로 정확했습니다.

데이터베이스를 업그레이드하기 위해 비용을 지불하지 않고이 문제를 해결하는 것은 간단하지 않았습니다. 데이터베이스를 축소 할 수 없기 때문입니다. Appharbor/RavenHQ 데이터베이스 하나를 삭제하거나 완전히 새로운 Appharbor 응용 프로그램을 만들거나 RavenHQ에 직접 등록하여 새로운 계정을 만들 수있는 다른 Appharbor/RavenHQ 데이터베이스를 만들 수 없었습니다. 나는 후자를 선택했다. RavenHQ 브랜드 컨트롤 패널은 Appharbor의 컨트롤 패널과 약간 다르며 데이터베이스를 만들고 삭제할 수 있습니다.

요약하면 : RavenHQ를 Appharbor의 부가 기능으로 사용하면 별 도움이되지 않는 것 같습니다. 적절한 무료 RavenHQ 계정을 얻을 수도 있습니다.

+1

RavenHQ를 애드온으로 사용하면 연결 문자열 자동화 및 원 클릭 프로비저닝을 수행 할 때 별다른 이점이 없습니다. –

관련 문제