はじめに
OSS版のMarketoのようなマーケティングツールを使いたいとマーケティングチームから話が上がってきたが、Dockerでインストールを試みたが一筋縄に行かなかった。
問題
https://qiita.com/kooooooooooooooooohe/items/43f9452acc539dbd3083
を参考にdocker-composeで立ち上げ、ブラウザでinstallしようとする。
するとこの画面でSQL Syntaxエラーが発生。
An error occurred while attempting to install the data: An exception occurred while executing 'CREATE TABLE reports (id INT AUTO_INCREMENT NOT NULL, is_published TINYINT(1) NOT NULL, date_added DATETIME DEFAULT NULL, created_by INT DEFAULT NULL, created_by_user VARCHAR(255) DEFAULT NULL, date_modified DATETIME DEFAULT NULL, modified_by INT DEFAULT NULL, modified_by_user VARCHAR(255) DEFAULT NULL, checked_out DATETIME DEFAULT NULL, checked_out_by INT DEFAULT NULL, checked_out_by_user VARCHAR(255) DEFAULT NULL, name VARCHAR(255) NOT NULL, description LONGTEXT DEFAULT NULL, system TINYINT(1) NOT NULL, source VARCHAR(255) NOT NULL, columns LONGTEXT DEFAULT NULL COMMENT '(DC2Type:array)', filters LONGTEXT DEFAULT NULL COMMENT '(DC2Type:array)', table_order LONGTEXT DEFAULT NULL COMMENT '(DC2Type:array)', graphs LONGTEXT DEFAULT NULL COMMENT '(DC2Type:array)', group_by LONGTEXT DEFAULT NULL COMMENT '(DC2Type:array)', aggregators LONGTEXT DEFAULT NULL COMMENT '(DC2Type:array)', settings LONGTEXT DEFAULT NULL COMMENT '(DC2Type:json_array)', is_scheduled TINYINT(1) NOT NULL, schedule_unit VARCHAR(255) DEFAULT NULL, to_address VARCHAR(255) DEFAULT NULL, schedule_day VARCHAR(255) DEFAULT NULL, schedule_month_frequency VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB': SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'system TINYINT(1) NOT NULL, source VARCHAR(255) NOT NULL, columns LONGTEXT DEFAU' at line 1
ソースを読んで直そうと試みたが、実運用ではなくちょっと試したいという温度感のようだったので、Dockerを諦め、とりあえず最短で使える方法を選んだ。
解決方法
Dockerを諦めた。以下のQiitaの記事のコピペでinstallができる。
https://qiita.com/bezeklik/items/3cd61156367909e31421