2012-05-02 15 views
0

評価のためにRavenDBをセットアップしました。私はそれにいくつかの文書をプッシュするいくつかのコードを書いた。私はそれらの文書をレンダリングするWebサイトを持っています。RavenDB自身のデータ変更

日中、Raven Studioを使用してこれらのドキュメントの一部のテキストを変更しました。その結果、私のWebサイトに変更が反映されていることがわかりました。

問題:夜の家に帰った後、翌日に私のデータベースが変わったようです。私の書類は「変更前の」バージョンに戻っています...何が起こっていますか? Ravenコンソールの出力を調べましたが、夜間に開発マシンにアップデートコマンドが発行されていませんでした。(これもありません!!)

注:これは自分の開発マシンでのみ実行されています。

答えて

1

私が知る限り、RavenDBにはコミットされた書き込み操作を自動的に取り消すコードはありません。正直なところ、これは本当に私を怖がらせるでしょう。全体的にこれは本当に奇妙に聞こえ、実際に起こり得るシナリオは考えられません。私はあなたが再びrafendbサポートにログファイルを送ることを提案します。これは、本当に重大な問題であるためです。

+0

ありがとうございましたDaniel - 低頻度のスケジュールとして「インデックスの再構築」が行われている可能性があると私は考えていました。これは正しいと思ったデータを見ていたときに、日は「正しい」データでした。しかし、これでも意味をなさない。私はそれを注意深く見守ります。ありがとう – Adam

0

アダム、 変更を加えた後、SaveChanges()を呼び出しましたか?

この動作を引き起こすRavenDBはまったくありません。

+0

こんにちは - はい、絶対に変更を保存しました。私は.netアプリケーションを使用して文書をRavenに保存し、変更を保存しました。私はその後、これらのドキュメントをASP.NETアプリケーションでレンダリングしました。私はRaven Studioでドキュメントを修正し、変更は私のWebアプリケーションに表示されました。そして、ある時点で私が触れた文書は消え去った。おそらく、それはhttp://stackoverflow.com/questions/10421839/ravendbentity-namingに関連していましたか?私が文書ID形式を変更してエンティティ命名の問題を経験しないようにしたので、まだ文書が失われているわけではありません。 – Adam

1

私の同僚は、更新を元に戻す際に非常に問題がありました。私たちが行った更新は、プロパティを追加し、このプロパティのドキュメント固有の値をすべてのドキュメントに追加することでした。 SaveConfiguration()を呼び出し、変更がRaven Studioで行われたことを確認しました。しばらくして、いくつかの書類が新しい財産を失った。

私はロギングをオンにして、ログを開始するためにNLog.configファイルを追加することにしました。私はweb.configに触れました。これはもちろん、アプリケーションを再起動し、 "voila"、Raven Studioにアップデートが再び登場しました。

しばらくしてRaven Studioから消えてしまったので、これはスタジオの問題だと思っていました。したがって、テストコントローラのデータベースからオブジェクトを取得しようとしましたが、残念ながらオブジェクトにはプロパティ値が不足していました。スタジオの問題だけではありませんでした。

ロギングをオンにして、特定のタイプのドキュメントを再度更新し、ログとスタジオに基づいてドキュメントを実際に更新しました。その後もドキュメントは失われて元に戻りました(私の同僚はこの時点で泣き始めました)。

その後、私たちのライブWebアプリケーションはまだ古いオブジェクトのバージョン。 Webアプリケーションで読み込まれたとき、追加のプロパティなしでデータが返されました。このため、DocumentSessionはオブジェクトが変更されたと思っていたようです(Save)。そのため、SaveChangesを呼び出すと、これらのオブジェクトも追加プロパティなしでデータベースに書き込まれました。

私の結論は正しいですか?この問題の解決策は何ですか?私はCQRSを考えています。なぜなら、DocumentSessionに "SaveChanges()"を呼び出すことは決してないからです。

+0

+1:これは受け入れられる答えです。 @アダム –

関連する問題