2011-12-03 18 views
0

突然、PostgreSQLデータベースにRailsのモデルを保存できません。データの取得は正常に動作します。モデルをPostgreSQLデータベースにRailsで保存できないのはなぜですか?

m = Model.find(1) 
m.save 
=> false 

別のデータベースに切り替えると問題ありません。 Railsログにはエントリがありません。

この現象の原因は何ですか?データベースが壊れていますか?ディスクは死んでいますか?私はリブートを試みたが、それは役に立たなかった。

データベースの整合性を確認する方法はありますか(pgAdmin IIIがインストールされていますか?)メンテナンスが必要ですか?どのように問題があるのか​​理解するには?

Ubuntu 11.04、Rails 3.0.7、PostgreSQL 8.3で作業しています。

答えて

2

オブジェクトが作成されて以来、バリデーションを追加しましたか?これを試してみてください:

PostgreSQLデータベースに何か問題があった場合は、例外と読み取りエラーが発生する可能性があります。

+0

これは私が答えを見つけるのを助けました。いつものように、それは***プログラマー***エラーでした。私が長い間前に追加した検証は失敗しましたが、オブジェクトを保存しようとしたのは初めてです。 –

+0

@BSeven:Railsがそれらを理解していないにもかかわらず、データベース内で(CHECK制約とFKのように)妥当性検査を行うという良い議論が見つかりました。もちろん、あなたのモデルにもそれらを望みます。 –

1

m.save! 

を試してみて、それはあなたのより多くの情報を与える必要があります。

+0

これも機能しました。ありがとう。 –

0

データベースが破損していますか?ディスクは死んでいますか?

もしそうなら、3行のRubyコードを表示することは役に立ちません。データベースが機能しているかどうかを知りたい場合は、データベースを参照してください。 PgAdminが動作すれば、dbは正常です。 Railsが送信しているクエリ(もしあれば)を見るために、dbのクエリログを有効にすることができます。

関連する問題