americandog1993の日記

プログラマー歴半年のメモ

RubyonRails HerokuでHelloWorldするまで

前提:
RubyRails・git・herokuツールベルトをインストールしている。
(筆者はCloud9使用。Ubuntu。)
Herokuの会員登録を終えている。

まず適当なアプリを作る。
Cloud9ならすでにあるのでこの工程は要らない。

$ rails new myapp
$ cd myapp

Gemfileを下のように書き換える。
(Railsチュートリアルそのまま)

source 'https://rubygems.org'

gem 'rails',        '5.0.0.1'
gem 'puma',         '3.4.0'
gem 'sass-rails',   '5.0.6'
gem 'uglifier',     '3.0.0'
gem 'coffee-rails', '4.2.1'
gem 'jquery-rails', '4.1.1'
gem 'turbolinks',   '5.0.1'
gem 'jbuilder',     '2.4.1'

group :development, :test do
  gem 'sqlite3', '1.3.11'
  gem 'byebug',  '9.0.0', platform: :mri
end

group :development do
  gem 'web-console',           '3.1.1'
  gem 'listen',                '3.0.8'
  gem 'spring',                '1.7.2'
  gem 'spring-watcher-listen', '2.0.0'
end

group :production do
  gem 'pg', '0.18.4'
end

bundle installする。

$ bundle install --without production

赤文字でエラーが出たら読んでみる。
'bundle update'がどうとか書いてたら

$ bundle update

を叩けばOK。
終わったら改めてbundle installする。

controllers/concerns/application_controller.rbを下のように書き換える。

class ApplicationController < ActionController::Base
  protect_from_forgery with: :exception
  def hello
    render html: "hello, world!"
  end
end

config/routes.rbを下のように書き換える。

Rails.application.routes.draw do
  root 'application#hello'
end

gitの初期設定。

$ git config --global user.name 名前
$ git config --global user.email メールアドレス

heroku設定。

$ heroku login
$ heroku keys:add

myapp直下でgit initする。

$ git init

ステージに上げてコミット。

$ git add -A
$ git commit -m "hello, world!"

heroku側でアプリ作成。
自動的にgitに紐づくようなのでそのままpush。

$ heroku create
$ git push heroku master

ターミナルに出てくるURLにアクセス。

f:id:americandog1993:20170422181418p:plain

参考:
railstutorial.jp

ORACLE 桁を揃えるLPAD

111

こいつを四桁にしたいとき。
足りない桁は頭に0を入れて保管する。
最初NUMBER型とする。

LPADの書き方は

LPAD('文字列', 桁数 , '補完文字')

桁数は数値型なので''(シングルクオーテーション)はつけない。
NUMBERの111をTO_CHARしてLPADする。

SELECT LPAD(TO_CHAR(111), 4, '0')
FROM DUAL

参考:
www.shift-the-oracle.com

ORACLE NUMBER型の日付を文字列yyyy/MM/dd表記で表示する

20110401

NUMBER型のこいつを書式を整えて表示する方法。

まず、TO_DATEしたいのだけど、TO_DATEの書き方は

TO_DATE('文字列', '書式')

なので、NUMBER型の20170401をまずTO_CHARする。

TO_CHAR(20170401)

それからTO_DATEをかける。

TO_DATE(TO_CHAR(20110401), 'yyyyMMdd')

TO_CHARの日付書式変換の書き方は

TO_CHAR('文字列', '書式')

で、こうなる。

TO_CHAR(TO_DATE(TO_CHAR(20110401), 'yyyyMMdd'), 'yyyy/MM/dd')

テキトーにテスト表示したければ、

SELECT TO_CHAR(TO_DATE(TO_CHAR(20170401), 'yyyyMMdd'), yyyy/MM/dd)
FROM DUAL

参考:
www.shift-the-oracle.com

A server is already running と出て rails server できないとき

$ rails s
=> Booting Puma
=> Rails 5.0.0.1 application starting in development on http://localhost:8080
=> Run `rails server -h` for more startup options
A server is already running. Check /home/ubuntu/workspace/sample_app/tmp/pids/server.pid.
Exiting

こんなん出た。
よく読むとなんか書いてる。

A server is already running. Check /home/ubuntu/workspace/sample_app/tmp/pids/server.pid.

言われた通り server.pid をチェックする。
というか消す。

pids まで行って、

$ sudo rm server.pid

これで rails s したら無事動いた。

参考:
hagetak.hatenablog.com

Docker 自分的最低限コマンドメモ

拙くてもとりあえず作って捨てられる開発環境があれば良しの精神。

$ sudo docker pull centos:7
$ sudo docker images

centOS7のDockerイメージを取得。
及び取得したDockerイメージの確認。

$ sudo docker ps
$ sudo docker ps -a

コンテナ一覧。
-a付けると動作終了したコンテナも見れる。

$ sudo docker run -it --name myCentOS centos:7 /bin/bash
$ sudo docker run -d -i --name myCentOS -p 3000:3000 -t centos:7 /bin/bash

コンテナの作成(名前つけて作成もしてるよね?これ)・起動して中に入る。
そしてポートフォワーディングの場合(まだ試してない)。

$ exit

コンテナから出る。コンテナは終了する。

$ sudo docker start myCentOS

名前かIDを指定してコンテナを再開。

$ sudo docker attach myCentOS

再開したコンテナに入る。

$ sudo docker rm myCentOS

コンテナの破棄。

参考
http://amzn.asia/5p3uioHamzn.asia
qiita.com

CentOS(6.8)でDocker導入

タイトル通り。

$ su
$ yum -y update

けっこう待つ。
終わったら、

$ sudo rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6
$ sudo yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
$ sudo yum -y install docker-io

ここまでで導入は完了。
早速動かしてみる。

$ sudo service docker start
$ sudo chkconfig docker on

下のコマンドはたぶん自動起動の設定的なやつ。

参考
qiita.com
qiita.com

さくらのVPSでCentOSを再インストールしたら WARNING:REMOTE HOST IDENTIFICATION HAS CHANGED! と出て入れない

さくらのVPSで全部やり直したくなったのでCentOSを入れ直したら

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

こういうクソでかエラーが出てつながらないとき。
おそらく以前作った秘密鍵と現在(再インストール後)のVPSサーバー側の公開鍵が合致しないのが原因。

ターミナルで以下をたたく。

$ ssh-keygen -R [サーバのIPアドレス]

これで繋がった。

参考
qiita.com