アップグレード後、インストールしたDesigner Contentにエラーが出てしまいます。

2013年3月26日 at 9:23

いつもお世話になっております。

Designer Contentをインストールし作成すると、

予期せぬエラーが発生しました。
mysql error: [1048: Column 'btDisplayOrder' cannot be null] in EXECUTE("INSERT INTO BlockTypes(btID,btHandle,btName,btDescription,btActiveWhenAdded,btCopyWhenPropagate,btIncludeAll,btIsInternal,btInterfaceWidth,btInterfaceHeight,pkgID,btDisplayOrder) VALUES (NULL,'test','test','test',1,0,0,0,'700','450',0,NULL)")


という表示が出てしまいます。原因と解決策はありますでしょうか?
・5.3.2から5.5.2.1までアップグレードしました
・Designer Content - 3.1.1を入れました

・予期せぬエラーが発生しました。(泣)


concreat5を再インストールをしたら直りました。 ↓
http://concrete5-japan.org/community/forums/chat/post-5999/
という方がいらっしゃったのですが、諸事情で再インストールはできないので。。
他の解決方法があれば教えていただきたいです。

よろしくお願いいたします。

タグ:

Re: アップグレード後、インストールしたDesigner Contentにエラーが出てしまいます。

2013年3月26日 at 9:32
もし5.5.2.1までアップグレードした直後に試しておられるのだとしたら、管理画面のキャッシュのクリアをお試しください。
 

Re: アップグレード後、インストールしたDesigner Contentにエラーが出てしまいます。

2013年3月26日 at 11:01
早急なご返信ありがとうございます。
キャッシュのクリアおこなったのですが。だめでした。。
アップグレード直後に、
【キャッシュ & スピード設定】
・基本キャッシュ→オフ - サイト開発中に最適
・フルページキャッシュ→ 無効 - 各ページで設定しない限り、キャッシュ不許可。
にもしております。

他に考えられる対応策はありますでしょうか?
また、アップグレード時に何か不具合があるようなことをしてしまったのでしょうか。。
もしあれば次回より気をつけたいと思います。
 

Re: アップグレード後、インストールしたDesigner Contentにエラーが出てしまいます。

2013年3月26日 at 12:13
btDisplayOrder は 日本語版では 5.6.0.2からの機能です。5.5.2.1では存在しません。
もしかすると、一度5.6.0.2にアップデートされた後で5.5.2.1にダウングレードされてませんでしょうか?
解決策は英語のフォーラムに掲載されています。
http://www.concrete5.org/community/forums/customizing_c5/addons-installation-error/#424030

レンタルサーバーだとphpmyadmin などを使用して、
BlockTypes テーブルのbtDisplayOrder フィールドを削除すると直るようです。

ただし、保証された解決策ではないようですので
テスト環境を作成したり、データベースをバックアップしたりしてから試してください。
 

Re: アップグレード後、インストールしたDesigner Contentにエラーが出てしまいます。

2013年3月26日 at 11:19
解決前に確認事項:
1、デザイナーコンテンツをインストール後すぐあとのエラーですか?
2、デザイナーコンテンツをインストール後、ブロックの作成時点でのエラーですか?


解決方法:下記をご参照ください。

- [初級者編]
[解決1]concrete5をインストールし直す。(推奨)
[解決2]別のconcrete5 の designer conctents が正常稼働しているサイト上で。
  ア)、ブロックを作成する。
  イ)、作成されたブロックは、ルート/block/作成したブロック名
     それをファルダーごとにコピー。
  ウ)、コピーしたブロックを本番サイト ルート/block/
     へ アップする。
  エ)、ログイン>ダッシュボード>スタック>ブロックタイプ
     インストール待ちでアップしたブロック名をインストールする。
  
- [中級者編]:concrete5 のインストのし直しが出来ないならば。
[解決1]:下記の環境を お手持ちのPC内で環境を作る。
・ 本番サーバーの ルートのディレクトリーファイル一式
・ 本番サーバーの お使いのconcrete5のデーターベース
・ 上記2つを、お手持ちのPCの仮想環境(ローカル環境)内に
  本番サイトと同じ物をビルドする。
・ キャッシュのクリア。
・ デザイナーコンテンツをインストールしてみる。

- [上級者編]
[解決1]:仮想環境で作成した、concrete5 のデーターベースをいじる
・ 中級者編で作った仮想環境内でテスト。(トライ&ゴーの繰り返し)
・ インストール前のデザイナーコンテンツで、mySQLデーターベース内のテーブルの
  DesignerContents 関連を一度削除する。
・ デザイナーコンテンツインストールしてみる。

- [超上級者編]
[解決1]:上級者編で解決したものを本番環境へ。(完全自己責任!)
・サーバーの知識有り、サーバーを扱い慣れている方のみに有効。
  専用サーバー上のみ推奨と、サーバーに責任がとれる方のみ。
 (Cloud/VPS/共有サーバーなどでは、絶対にしない事。)
・上級者編で解決したconcrete5+DBを直接、本番サーバーにアップする。
 (出来れば絶対にしないでください。)

ひとつづつ原因を探り出すしかないかと思います。以上です。
 

Re: Re: アップグレード後、インストールしたDesigner Contentにエラーが出てしまいます。

2013年3月26日 at 11:37
詳しい解決方法をありがとうございます。

デザイナーコンテンツをインストール後、ブロックの作成時点でのエラーです。
 

Re: アップグレード後、インストールしたDesigner Contentにエラーが出てしまいます。

2013年3月26日 at 12:17
>ブロック作成時エラー

上記であれば。。。

確認事項:
1、concrete5 rooot / block / 作成された [ブロック名] が作成されていませんか?まず確認。
2、エラーログが、データーベースエラーです。
  疑うのは、concrete5 バージョン毎(アップデートの為)のエラーなのか?
  デザイナーコンテンツ自体のエラーなのか?
  作成されたブロックのエラーなのか?ということです。


私自身もデザイナーコンテンツを作成した際、上記のエラーがあったことがあります。
あまり記憶さだかではないんだけど、concrete5.5.2.1 あたりだったんじゃないかなー?と思います。そのころちょうどデザイナーコンテンツもバージョンアップを頻繁に行っていたので、ちょっと覚えていないのですが、確かエラーはあっても、ブロックは作成されていて、エラーログ表示に、ブラウザーの戻るボタンで、ダッシュボードに戻っていたはずです。
そして、ちゃんとブロックは作成されていたような気がして、その後最新のデザイナーコンテンツをアップデート後は、正常に機能していたような気がします。

作成さえしていれば、ダッシュボード>スタック>ブロックタイプで、確認が出来ます。
もともとデザイナーズコンテンツ自体で、ブロックをお手軽に作成して、あとから、そのファイルを改造する(php/cssつけ)ことが醍醐味なので、エラーが出ると気持ちは悪いのですが、ブロックさえ作成されてしまえば、後は気にならないのも事実です。

しかしながら、あの時以来エラーは出ていなかったはずです。


解決までの道:

- [中級者編]:中級者編の問題かなーと思います。

[解決1]:下記の環境を お手持ちのPC内で環境を作る。
・ 本番サーバーの ルートのディレクトリーファイル一式
・ 本番サーバーの お使いのconcrete5のデーターベース
・ 上記2つを、お手持ちのPCの仮想環境(ローカル環境)内に
  本番サイトと同じ物をビルドする。
・ キャッシュのクリア。
・ バージョン毎のデザイナーコンテンツをインストールしてみる。
・ バージョン毎のデザイナーコンテンツをインストールして、ブロックを作成してみる。

[解決2]:仮想環境で 新・旧の concrete5 でテスト
・ 最新バージョンでの、concrete5.6.0.2 でのテスト環境でトライ&ゴー。
・ バージョン毎のデザイナーコンテンツをインストールしてみる。
・ バージョン毎のデザイナーコンテンツをインストールして、ブロックを作成してみる。

・ 前のバージョンでの、concrete5.5.2.1 でのテスト環境でトライ&ゴー。
・ ダウングレードは、前のデーターベース残っていれば可能です。(やり方わかりますよね?)
・ バージョン毎のデザイナーコンテンツをインストールしてみる。
・ バージョン毎のデザイナーコンテンツをインストールして、ブロックを作成してみる。

・ デザイナーコンテンツは、本家のサイトから最新と一つ前のをそれぞれダウンロードする。

これで、それぞれのテスト環境が整ったので、テストと状況がわかるかと思います。

[解決3]:解決2で完成したブロックを本番サイトへ。
・ 解決2で作成・調整・修正した完成されたブロックは、本番サイトにアップしても問題はまったくありません。
・ concrete5 / root / blocks / 完成したブロックのフォルダー へアップ。

もし上記を行い、その結果がわかれば、こちらに報告・協力していただけると大変助かります。
 

Re: アップグレード後、インストールしたDesigner Contentにエラーが出てしまいます。

2013年3月26日 at 12:54
●acliss19xx様
そうです。しました!
5.6.0.2にアップデート後5.5.2.1にダウングレードしました!
そういったこともあるんですね。。全然気にしていなかったです。
ありがとうございます。


●tomoya様
はい、concrete5 rooot / block / 作成された [ブロック名] が作成されています。
しかし私の場合は、
1.作成

2.予期せぬエラーが発生しました。

3.「ホームに戻る。」ボタン押す

4.エラー:ブロックハンドルが空です。
となってしまいます。

ダッシュボード>スタック>ブロックタイプの中には作成したブロックが
インストール待ちである状態ですが、インストールボタンを押すと
mysql error: [1048: Column 'btDisplayOrder' cannot be null] in EXECUTE("INSERT INTO BlockTypes(btID,btHandle,btName,btDescription,btActiveWhenAdded,btCopyWhenPropagate,btIncludeAll,btIsInternal,btInterfaceWidth,btInterfaceHeight,pkgID,btDisplayOrder) VALUES (NULL,'e','e','e',1,0,0,0,'700','450',0,NULL)")
上記のようなエラーが出てしまいます。。

詳しく書いていただいた解決までの道を頼りに、やってみます!
(上手くいくか少し不安ですが。。。いや、だいぶ不安ですが。。。w)
ありがとうございます!!


●hissy様
早急な返答ありがとうございました。
 

Re: アップグレード後、インストールしたDesigner Contentにエラーが出てしまいます。

2013年3月26日 at 13:11
5.6.0.2から5.5.2.1 にダウングレードされた場合はデータベースも5.5.2.1仕様にダウングレードしないといけません。できない場合は今回以外の不具合の可能性もあります。
データベースがそのままでダウングレードされたということは
site.php を書き換えただけではないかと推測しますので、
site.php を 書き換えて5.6.0.2 にされるのが一番いい解決策だと思います。