読者です 読者をやめる 読者になる 読者になる

RailsプロジェクトをHeroku、MySQL(clearDB)始めるときの手順

いっつも忘れるので書いておく。備忘録的な。

プロジェクト作成

$ rails new project_name
$ cd project_name

とりあえず最初に入れるGem

source 'https://rubygems.org'
gem 'rails', '4.2.0'
gem 'mysql2'
gem 'sqlite3'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'spring'
gem 'haml-rails'
gem 'rails_12factor', group: :production
gem 'exception_notification', :github => 'smartinez87/exception_notification'
gem 'slack-notifier'

group :development, :test do
  gem 'dotenv-rails'
  gem 'pry-rails'
  gem 'pry-byebug'
  gem 'pry-doc'
  gem 'erb2haml'
  gem 'quiet_assets'
end
$ bundle install --path vendor/bundle

初期設定

database.yml

default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password:
  host: localhost

development:
  <<: *default
  database: project_name_development

test:
  <<: *default
  database: project_name_test

.ruby-version

2.x.x

application.rb

require File.expand_path('../boot', __FILE__)
require 'rails/all'
Bundler.require(*Rails.groups)

module ProjectName
  class Application < Rails::Application
    config.time_zone = 'Tokyo'
    config.active_record.default_timezone = :local
    config.active_record.raise_in_transactional_callbacks = true
    config.serve_static_assets = true
  end
end

secrets.yml

development:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

test:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

.env

SECRET_KEY_BASE=xxx

githubに上げる

.gitignore

/.bundle
/vendor/bundle
/vendor/bundler/
/db/*.sqlite3
/db/*.sqlite3-journal
/log/*.log
/tmp
/uploads/tmp/
/config/settings.local.yml
/config/settings/*.local.yml
/config/environments/*.local.yml
/config/database.yml

.env
.envrc
.pryrc
.DS_Store

config/settings.local.yml
config/settings/*.local.yml
config/environments/*.local.yml
$ git init
$ git add .
$ git commit -m "first commit"
$ git remote add origin git@github.com:eiei19/project_name.git
$ git push -u origin master

herokuの設定

以下、コンパネから。

  1. アプリ作る
  2. githubと連携する
  3. clearDBアドオン

最後にDB設定。 以下コマンド。mysql2://xxxxxはClearDBのschema違い。 初回デプロイの場合は最初の一行はいらない。 ここまではすればdeployできる。

$ heroku addons:destroy heroku-postgresql -a project_name
$ heroku config:set DATABASE_URL='mysql2://xxxxx' -a project_name