Herokuの各種コマンドを試してみる

helpでコマンドの一覧が確認できる。

> heroku help
・・・
COMMANDS
  access          manage user access to apps
  addons          tools and services for developing, extending, and operating your app
  ・・・
  webhooks        list webhooks on an app

とりあえずloginコマンドでログイン。

> heroku login

アプリケーションの作成

「heroku create アプリケーション名」でアプリケーションを作成。

> heroku create hoge-hoge-9999

アプリケーションの一覧はappsコマンドで確認できる。

> heroku apps
・・・
hoge-hoge-9999
・・・

アプリの情報はapps:infoで見れる。

> heroku apps:info --app hoge-hoge-9999
=== hoge-hoge-9999
Auto Cert Mgmt: false
Dynos:
Git URL:        https://git.heroku.com/hoge-hoge-9999.git
Owner:          hoge@hoge.com
Region:         us
Repo Size:      0 B
Slug Size:      0 B
Stack:          heroku-20
Web URL:        https://hoge-hoge-9999.herokuapp.com/

上記の例では、「--app アプリケーション名」でアプリを指定したが、
cloneしたリポジトリ上であれば、

> git clone https://git.heroku.com/hoge-hoge-9999.git
> cd hoge-hoge-9999

「--app アプリケーション名」は省略できる。

> heroku apps:info
・・・

※別途gitのリモートにherokuを追加したい場合は、下記のコマンドを実行。

$ heroku git:remote -a アプリ名

$ git remote -v
heroku  https://git.heroku.com/アプリ名.git (fetch)
heroku  https://git.heroku.com/アプリ名.git (push)
origin ・・・
origin ・・・

index.phpの設置

適当なindex.phpを作成し、 index.php

<?php
echo 'Hello, world!';

Herokuに反映。

> git add .
> git commit -m "first commit"
> git push origin master

openで、アプリケーションをブラウザで確認できる。

> heroku open

f:id:yk5656:20210124213321j:plain

PostgreSQLの使用

addons:createでPostgreSQLのアドオンを追加してみる。
今回は、無料の「hobby-dev」を指定。

> heroku addons:create heroku-postgresql:hobby-dev

ちなみに、Herokuのサイトから追加する場合は、 ResourceのページでAdd-onsでPosgreSQLを検索して追加していく。
f:id:yk5656:20210124213346j:plain

addonsコマンドで、アドオンの一覧を確認できる。

> heroku addons

Add-on                                         Plan       Price  State
─────────────────────────────────────────────  ─────────  ─────  ───────
heroku-postgresql (postgresql-polished-XXXXX)  hobby-dev  free   created
 └─ as DATABASE

The table above shows add-ons and the attachments to the current app (hoge-hoge-9999) or other apps.

pg:sqlコマンドでデータベースにアクセスする。

ただし、コマンドを実行する環境にPostgreSQLをインストールしておく必要がある。
インストールしていないと、下記のようなエラーが出る。

> heroku pg:psql
--> Connecting to postgresql-polished-81447
 !    The local psql command could not be located. For help installing psql, see
 !    https://devcenter.heroku.com/articles/heroku-postgresql#local-setup

Windowsの場合は、下記のサイトからダウンロードして、インストールを実行し、 https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

Windows環境変数のPathに「C:\Program Files\PostgreSQL\13\bin」のようなパスを設定する。

これで、データベースにアクセスできる。

> heroku pg:psql
・・・
hoge-hoge-9999::DATABASE=>

最初はテーブルは1つもないので、

hoge-hoge-9999::DATABASE=> \d
リレーションが見つかりませんでした。

試しにテーブルを作って、

hoge-hoge-9999::DATABASE=> CREATE TABLE hoge_table (id int, name varchar(10));
hoge-hoge-9999::DATABASE=> \d
                 リレーション一覧
 スキーマ |    名前    |  タイプ  |     所有者
----------+------------+----------+----------------
 public   | hoge_table | テーブル | ligrbttjehztaf

データを追加してみる。

hoge-hoge-9999::DATABASE=> INSERT INTO hoge_table VALUES (1, 'hoge');
hoge-hoge-9999::DATABASE=> SELECT * FROM hoge_table;
 id | name
----+------
  1 | hoge

接続を終了。

hoge-hoge-9999::DATABASE=> \q

pg:infoでDBの情報が見れる。

> heroku pg:info
=== DATABASE_URL
Plan:                  Hobby-dev
Status:                Available
Connections:           0/20
PG Version:            12.5
Created:               2021-01-24 08:41 UTC
Data Size:             8.0 MB
Tables:                1
Rows:                  1/10000 (In compliance)
Fork/Follow:           Unsupported
Rollback:              Unsupported
Continuous Protection: Off
Add-on:                postgresql-polished-81447

また、下記のコマンドでDBへの接続情報が見れる。

> heroku pg:credentials:url
Connection information for default credential.
Connection info string:
   "dbname=・・・ host=ec2-XXX-XXX-XXX-XXX.compute-1.amazonaws.com port=5432 user=・・・ password=・・・ sslmode=require"
Connection URL:
   postgres://・・・:・・・@ec2-XXX-XXX-XXX-XXX.compute-1.amazonaws.com:5432/・・・

環境変数

configコマンドで環境変数が確認できる。

> heroku config
=== hoge-hoge-9999 Config Vars
DATABASE_URL: postgres://・・・:・・・@ec2-XXX-XXX-XXX-XXX.compute-1.amazonaws.com:5432/・・・

config:setで環境変数が追加できる。

> heroku config:set HOGE=hogehoge
> heroku config
=== hoge-hoge-9999 Config Vars
DATABASE_URL: ・・・
HOGE:         hogehoge

特定の環境変数の情報する場合はconfig:get。

> heroku config:get HOGE
hogehoge

config:unsetで環境変数を削除できる。

> heroku config:unset HOGE
> heroku config
=== hoge-hoge-9999 Config Vars
DATABASE_URL: ・・・

その他

logsでログが見れる。

> heroku logs
・・・

「heroku run コマンド」でコマンドを実行できる。
bashを実行することも可。

> heroku run bash
Running bash on ⬢ hoge-hoge-9999... up, run.8967 (Free)
~ $ pwd
/app
~ $ ls
Procfile  composer.json  index.php  vendor

アプリケーションの削除は、apps:destroy。

> heroku apps:destroy
・・・
(アプリケーション名を入力)

logoutでログアウト。

> heroku logout