テーブル名が変わる(お問い合わせフォーム)
kztkym > テーブル名が変わる(お問い合わせフォーム) @ 2015/2/19 5:33 |
---|
お問い合わせフォームを表示しようとしたら
データベーステーブルがありません ”Table bsc_pg_contact_messages for model Message was not found in datasource plugin.” というエラーが発生しました。(デバグモード) 調べてみると、確かに bsc_pg_contact_messages というテーブルはありません。代わりに bsc_pg__messages というテーブル名のものがありました。中身は以前テストで入力したレコードが入っていたので現象だけみると テーブル名が変更されてしまったように見えます。 サイトは作成中で、以前にテストとして「お問い合わせフォーム」の動作は確認していますのでインストールに 失敗しているということはないと思います。(実際リネーム後のテーブルにはテストデータが入っていました) ですので、作成中の何かの操作でリネームされてしまったようなのですが、原因がわかりません。 どなたか、このような現象を経験された方はいらっしゃいますか? (ちなみに他のテーブルは問題ないようです) |
goichi > Re: テーブル名が変わる(お問い合わせフォーム) @ 2015/2/19 21:35 |
---|
こんにちは(^^
直接の回答でなく恐縮なのですが、メールフォームプラグインは、メールフォーム毎にテーブルを作るため、メールフォーム名を変更すると、それに合わせてテーブル名も変更する仕様になっていると思います。 今回、元々が「bsc_pg_contact_messages」という事なので、「contact」という名前でメールフォームがあったのだと思います(デフォルトでしょうか)。それが「bsc_pg__messages」になったということなので、メールフォーム名を変更(されましたでしょうか?)した時に、何かしらの事情で上手く行かなかったのかも知れません。 その上での話なのですが、例えば、もう一度問題のメールフォームに「contact」という名前をつけたらどうなるでしょうか?自動でテーブル名が変更された結果、再び「bsc_pg_contact_messages」が生成されませんでしょうか? 間違っていたらすみません、参考までに投稿しておきます。m(__)m |
kztkym > Re: テーブル名が変わる(お問い合わせフォーム) @ 2015/2/20 9:46 |
---|
goichiさん、情報ありがとうございます。
メールフォーム一覧では名称はcontactになっておりこの部分を編集した記憶はありませんのでメールフォーム変更時に処理が正しくなされなかったということはないと思います。 とりあえず、 contactのフォームを開いて(なにも変更しないで)保存ボタン ーーー 元テーブルがないというエラー contactのフォームを開いて、別の名前(_contact_)保存 ーーー 元テーブルがないというエラー contactのフォームを開いて、元の名前(contact)に戻して保存 ーーー 元テーブルがないというエラー という結果でした。試した過程でリネーム処理が正常に動作することを期待したのですが、肝心のリネーム元のテーブルが ないので当たり前ですが、すべて上記のエラーとなりました。 最終的には、 alter table bsc_pg__messages rename to bsc_pg_contact_messages; で(+サーバキャッシュ削除)で正常に表示できるようになりました。 なぜ?テーブル名が変わってしまったのかは今のところ謎ですが、時間を見つけてプラグインの挙動をチェックしてみようと 思います。 有益なヒントをありがとうございました。 |