現在、運用しているサイトの固定ページ、コンテンツフィールドでlongtextを利用しているのですが、データメンテナンスのバックアップ→復元の運用ができません。
現行のbaserCMS4系(Cake2系)のCakeSchemaでmediumtextおよびlongtextを扱えるようにすることはできないでしょうか?
現在、運用しているサイトの固定ページ、コンテンツフィールドでlongtextを利用しているのですが、データメンテナンスのバックアップ→復元の運用ができません。
現行のbaserCMS4系(Cake2系)のCakeSchemaでmediumtextおよびlongtextを扱えるようにすることはできないでしょうか?
本来、baerCMSのSchemaには以下のようにフィールドの型をlongtext型に変換する記述があるはずなのですが、データメンテナンスのバックアップからダウンロードされてきたSchemaを見るとそのafterの部分がごっそりなくなっていることを確認しました。
public function after($event = [])
{
$db = ConnectionManager::getDataSource($this->connection);
if (get_class($db) !== 'BcMysql') {
return true;
}
if (isset($event['create'])) {
switch($event['create']) {
case 'blogposts':
$tableName = $db->config['prefix'] . 'blog_posts';
$db->query("ALTER TABLE {$tableName} CHANGE content content LONGTEXT");
$db->query("ALTER TABLE {$tableName} CHANGE content_draft content_draft LONGTEXT");
$db->query("ALTER TABLE {$tableName} CHANGE detail detail LONGTEXT");
$db->query("ALTER TABLE {$tableName} CHANGE detail_draft detail_draft LONGTEXT");
break;
}
}
GithubにてIssueを作成するべき事案だと思われますので、そのように対応いたします。Issueを立てたら改めてご連絡いたします。
@hiraoka さん
確認いただきありがとうございます。
確かにlib/Baser/Plugin/Blog/Config/Schema/blog_comments.php や lib/Baser/Config/Schema/pages.php を見ると
ご指摘のコードがありますね。。。
とりあえず、データメンテナンスに格納されるblog_comments.phpおよびpages.phpに当該コードを転記して、「復元」運用をすることで対応いたします。