山崎屋の技術メモ

IT業界で働く中でテクノロジーを愛するSIerのシステムエンジニア👨‍💻 | AndroidとWebアプリの二刀流🧙‍♂️ | コードの裏にあるストーリーを綴るブログ執筆者✍️ | 日々進化するデジタル世界で学び続ける探究者🚀 | #TechLover #CodeArtisan、気になること、メモしておきたいことを書いていきます。

【Heroku Postgresql】アドオンを追加し、テーブル操作を行う

f:id:yyama1556:20180430102044p:plain

Heroku シリーズの第三弾として、Heroku にデプロイしたアプリから参照できるテーブルを作成したいと思います。

第一弾
Heroku のユーザー登録 - 山崎屋の技術メモ

第二弾
Spring boot で作ったアプリを Heroku にデプロイして全世界に公開 - 山崎屋の技術メモ

OS は Windows 7 です。あと、ローカルに Postgresql がインストールされている必要があります。(クライアントだけでいいのかな?)

アプリの作成

サンプルとして空っぽのアプリを作成したいと思います。

コマンドプロンプトを起動して、heroku login でログインしておいてください。

適当なフォルダを作成しそこに移動し、 heroku create [アプリ名] を実行します。

C:\tmp>mkdir pg-sample-app

C:\tmp>cd pg-sample-app

C:\tmp\pg-sample-app>heroku create pa-sample-app
Creating ⬢ pa-sample-app... done
https://pa-sample-app.herokuapp.com/ | https://git.heroku.com/pa-sample-app.git

これで、hroku アプリケーションが作成されました。
ダッシュボードからも確認できます。

f:id:yyama1556:20180311153032p:plain

Heroku Postgres アドオンの追加

コマンドプロンプトに戻り、「heroku addons:create heroku-postgresql:hobby-dev・・・」のように入力すると、データベースが作成されます。

C:\tmp\pg-sample-app>heroku addons:create heroku-postgresql:hobby-dev -a pa-sample-app
Creating heroku-postgresql:hobby-dev on pa-sample-app... free
Database has been created and is available
 ! This database is empty. If upgrading, you can transfer
 ! data from another database with pg:copy
Created postgresql-fluffy-90300 as DATABASE_URL
Use heroku addons:docs heroku-postgresql to view documentation

アプリの概要ページに、Heroku Postgres アドオンが表示されるようになりました。

f:id:yyama1556:20180311154059p:plain

psql でログインしてテーブルの作成

heroku pg:psql コマンドを使用して、データベースにログインします。

C:\tmp\pg-sample-app>heroku pg:psql -a pa-sample-app
--> Connecting to postgresql-fluffy-90300
psql (9.5.3, サーバー 10.3 (Ubuntu 10.3-1.pgdg14.04+1))
注意: psql メジャーバージョン 9.5, サーバーバージョン 10.3.
         psql の機能の中で、動作しないものがあるかもしれません。
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: オフ)
"help" でヘルプを表示します.

pa-sample-app::DATABASE=>

ログインできました。

ローカルにインストールされている PostgreSQL のバージョンが 9.5.3 ( サーバー側が 10.3 )なので、警告が出ています。

続いてテーブルを作成して、データを INSERT してみます。

pa-sample-app::DATABASE=> create table sample(
pa-sample-app::DATABASE(> id integer not null,
pa-sample-app::DATABASE(> name varchar(100) not null,
pa-sample-app::DATABASE(> primary key (id)
pa-sample-app::DATABASE(> );
CREATE TABLE

もうここまできたら、普通の PostgreSQL を操作するのと同じです。

pa-sample-app::DATABASE=> select * from sample;
 id |   name
----+----------
  1 | hogehoge
  2 | fugafuga
(2 行)

まとめ

ということで、heroku に登録したアプリケーションに Heroku Postgres アドオンを追加し、テーブル操作をするところまで試してみました。
Heroku Postgres アドオンでは、1万レコードまでは無料で使えるので( hobby-dev というプラン です。)、小さなアプリケーションであれば、十分まかなえます。

それでは、

プロフェッショナルのための 実践Heroku入門 プラットフォーム・クラウドを活用したアプリケーション開発と運用 (書籍)

プロフェッショナルのための 実践Heroku入門 プラットフォーム・クラウドを活用したアプリケーション開発と運用 (書籍)

クラウド開発徹底攻略 (WEB+DB PRESS plus)

クラウド開発徹底攻略 (WEB+DB PRESS plus)

  • 作者: 菅原元気,磯辺和彦,山口与力,澤登亨彦,内田誠悟,小林明大,石村真吾,相澤歩,柴田博志,伊藤直也,登尾徳誠,WEB+DB PRESS編集部
  • 出版社/メーカー: 技術評論社
  • 発売日: 2016/05/13
  • メディア: 大型本
  • この商品を含むブログを見る
HerokuではじめるRailsプログラミング入門

HerokuではじめるRailsプログラミング入門