必要なら作業用ディレクトリを作成する
mkdir <ディレクトリ名>
cd <作成したディレクトリ名>
クローンを作成する
git clone https://github.com/ymmtd0x0b/sinatra-memoapp.git
アプリのあるフォルダへ移動する
cd ./sinatra_memoapp
アプリの動作に必要なGemをインストールする
bundle install
アプリの起動前にデータベースとテーブルをローカルに準備する(初回のみ)
- 管理ユーザーでPostgreSQLにログイン
su - postgres
psql -U postgres
- メモアプリ用のデータベースを作成
CREATE DATABASE memo_app;
\c memo_app
- テーブルを作成
CREATE TABLE memo (
id SERIAL PRIMARY KEY NOT NULL,
title VARCHAR(50) NOT NULL,
content VARCHAR(300) NOT NULL);
- ユーザーを作成 アプリ側からデータベースを操作するためのユーザーを作成する
CREATE ROLE memoapp_user LOGIN PASSWORD '[password]';
- 作成したユーザーにアクセス権を付与( 今回はテーブルとシーケンスにアクセス権が必要 )
GRANT SELECT, UPDATE, INSERT, DELETE ON memo TO memoapp_user;
GRANT SELECT, UPDATE ON SEQUENCE memo_id_seq TO memoapp_user;
-
一度PostgreSQLを抜けるか、別途ターミナルを立ち上げてホームへ戻る
-
テキストエディタにて
.pgpass
を開く(以下、例としてvimを使用)
cd ~
vim .pgpass
.pgpass
に以下をコピー&ペーストする
localhost:5432:memo_app:memoapp_user:[4.で指定したパスワード]
.pgassファイル
の権限を変更する 以下のようにすることで自分自身のアカウントでログインしてアプリを起動した場合のみログイン可能になるので、不正なログインを防止できる
chmod 600 .pgpass
以下のコマンドでアプリを起動する
bundle exec ruby main.rb
http://localhost:4567 にアクセスするかブラウザのURLへ直接入力する