Concrete5のdb.xmlでVarCharのサイズを指定する

Concrete5タイトル

Concrete5のパッケージでデータを保存する場合、データベースを使用することになります。

その際、データベースのテーブル定義は「db.xml」に書き、インストール時に読み込ませます。(詳しい使い方は公式サイトのBasic Block Developmentをご覧ください)

この使い方でわかりづらい点があったのでメモ。

Cがエラーになる

db.xmlではカラムの型を「C」「X2」などの独自のコードで指定します。ちなみにC = VarCharになります。(定義の一覧はこちら

<field name="content" type="C" ></field>

として定義できると公式サイトには書かれていますが、実際には上記定義はエラーになります。

なぜかというとCの長さが入っていないため、SQLが

CREATE TABLE btTest( 
  bID INTEGER UNSIGNED NOT NULL
  , content VARCHAR
  , PRIMARY KEY (bID)
)

となってしまうためです。長さゼロのVarCharを定義しようとしてしまうのですね。

size指定

ではカラムの長さはどうやって指定するか、というとフィールド定義の属性に書きます。

<field name="content" type="C" size="255"></field>

上記定義で長さ255のVarCharカラムが作成されます。