2012-06-12 5 views
2

У меня есть полностью пустая база данных RavenHQ, связанная с моим приложением Appharbor. Объем пространства, которое в настоящее время использует база данных, составляет 1,1 МБ из доступной 25 МБ для моей бронзовой учетной записи. В базе данных ранее были записи, но я удалил их, используя «удалить коллекцию» в студии управления.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. 

Теперь документ, безусловно, не так уж велик, так что я не знаю, что может означать эта ошибка, тем более, что я не думаю, что я даже попал в базу данных в этот момент так как я гавань» t закрыл сеанс, вызвав 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 обнаружила, что база данных действительно была большой, но казалось, что размер, указанный в панели управления RavenHQ под маркой Appharbor, был неправильным. Я заполнил базу данных по предел с предыдущей ошибкой версии выше, поэтому сообщение об ошибке, которое я получил, было действительно правильным.

Устранение этой проблемы без оплаты обновления базы данных было непростым, так как невозможно сжать базу данных. Поскольку я также не смог удалить свою единственную базу данных Appharbor/RavenHQ или создать еще одну, которая оставила меня с выбором создания совершенно нового приложения Appharbor или регистрации непосредственно с RavenHQ для новой учетной записи. Я выбрал последний. Управляемая панель RavenHQ немного отличается от Appharbor, поскольку она имеет возможность создавать и удалять базы данных.

Итак, чтобы понять, что использование RavenHQ в качестве дополнения к Appharbor, похоже, не принесет никакой пользы, вы также можете получить бесплатную учетную запись RavenHQ.

+1

Нет никакой пользы от использования RavenHQ в качестве дополнения - вы получаете автоматизацию строки подключения и один клик. –