ダッシュで奪取

レガシーSIer → webエンジニア(見習い) 新しく知ったことのメモを書いています。

【Amon2】アプリケーション作成

目次

  1. Amon2って何?
  2. インストール
  3. アプリケーションの作成
  4. carton install
  5. 起動してみる
  6. DB作成
  7. テーブル作成
  8. 参考URL

Amon2を勉強しようと思ったら、調べるのに色々手間取ってしまったのでメモです。
HelloWorldではあまり楽しくないので、何回かに分けて基本のタスクリスト的なものを作ってみようと思います。

この記事の目標
  • Amon2でアプリの雛形作成
  • DBの作成

1. Amon2って何?

  • Perlのフレームワークだよ!

2. インストール

  • Amon2はCPANに公開されているので、cpanmコマンドでインストールできる
    • CPAN:Perlのモジュールが公開されているサイト
    • モジュール:Railsで言う「Gem」みたいなイメージ
  • 後で使うので、Cartonも一緒に入れておく
$ cpanm Amon2
$ cpanm Carton
  • cpanmコマンドを入れていない場合、plenv経由で導入する
$ plenv install-cpanm

3. アプリケーションの作成

  • amon2-setup.pl コマンドで雛形が作成される
$ amon2-setup.pl アプリ名
  • 今回は「amon2-tasklist」で作成!
$ amon2-setup.pl amon2-tasklist

4. carton install

  • 作成したアプリケーションのディレクトリに移動してから、コマンド実行
  • Railsで言う「bundle install」
$ cd amon2-tasklist
$ carton install

5. 起動してみる

  • 起動コマンド
    • 実行するとURLが出てくるので、そのURLにアクセス
$ carton exec -- perl -Ilib script/アプリ名-server
  • amon2-tasklistの場合、下記のようになる
$ carton exec -- perl -Ilib script/amon2-tasklist-server
  • 「Hello, Amon2 world!」の画面が表示されたらOK
  • ヤッタ- f:id:kyoruni:20191126003453p:plain

6. DB作成

  • DB名:amon2-tasklist で作成
$ mysqladmin -uroot create amon2-tasklist

7. テーブル作成

  • sql/mysql.sql に、CREATE文を記載
DROP TABLE IF EXISTS tasks;
CREATE TABLE IF NOT EXISTS tasks (
    id         INT          UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    content    VARCHAR(255) NOT NULL,
    created_at TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  • CREATE文実行
$ cat sql/mysql.sql | mysql -u root amon2-tasklist
  • 試しにinsertしてみる → OK f:id:kyoruni:20191126004116p:plain

8. 参考URL