Railsチュートリアルをやり始めた初心者です。
色々な固有名詞が出てきて、個々の機能はある程度調べられても、
連携プレイのことを説明してくれているところがあまりありません。自分の理解が不安です。
私の認識に間違いがあるか、チェックして頂けますでしょうか。
流れとしては、
Gemなどコーディングの前準備
↓
Gitの管理下へ
↓
BitbucketやHerokuと連携
↓
環境とDBについて
という感じです(チュートリアルに沿っている)。
Cloud9使ってます。
ではよろしくお願いいたします。
コーディングの前準備
-
まずcloud 9という環境に、作りたいSample_appのワークスペースを作る。
-
次にRailsという、Ruby開発をより便利にするための機能を入れます(フレームワークと言いう)。
-
Gemという、これまた開発を楽にしてくれるプチ機能集みたいなものがあり、これはバイキングのように好きなものを好きなだけ自分で選んで、入れる。
-
必要なディレクトリやファイルを作る。
さっそくRailsの力を使って、rails new Sample_appと書けば、いっぺんにワークツリーができあがる。
これでアプリをつくる用意ができた。
安全のためのGit
- アプリは作っていく上でバージョン管理下に置くのが望ましい。
ファイルの変更記録が管理されるので、ミスをカバーしやすくなる。
- Gitを使うとすると、まずgit initでリポジトリを作成、git remote addでリモートリポジトリを登録、git add→git commit→git pushでチームのみんなもそのファイルを自由に見たりいじったりできるようになる。
(git initせず、git cloneで、他人が作ったものをコピーしてきて、そこで作業し始めることも多々あり)
これで安心してコーディングを進められるぞ。
###共有とデプロイ
- Gitのリポジトリを管理して、他の人と共有したりをしやすくするサービスBitbucket。
デプロイが簡単になるHeroku。
- GitのコマンドでGitのSSH公開鍵を取得して、BitbucketとHerokuに教えてあげる。すると、Gitと両サービス間で、データのやり取りができるようになる。
まずBitbucketから・・・
- Bitbucketはサイトへ行き、GUIでリポジトリを作ってあげる。
- ターミナルでgit remote add origin git@bitbucket.org:ユーザー名/アプリ名.git
と書くと、そのアプリはBitbucketへpushされるやつらのための「控え部屋」へ入れられる。
git commitはやらないで(理由わからないけど)、
git push -u origin --allでBitbucketへアップロードされる。
続いてHerokuです
- ターミナルでHeroku loginし、Heroku createで、Heroku上に、アプリを置く場所を作る。
- git push heroku masterでアップロード(この場合デプロイ)。
すると、普通のサイトと同じように、ブラウザの検索窓にURLをうちこめば、見られるようになる。
開発環境と本番環境のDBが合わない問題の解決
順番的にはデプロイの前にやっておくことですが、内容上別添えにしました。
- DBに関しては、Cloud9ではSQLiteしか、HerokuではPostgreSQLしか使えない。
だから、それぞれの環境で、それぞれのGemが動くように、Gemfileの記述を調整しておく(開発・テスト用SQLiteにはgroup :development, :test do ~ end、
本番用PostgreSQLはgroup :production do ~ end)。
- 上記でGemfileの調整はしたものの、いつものようにbundle installすると、SQLiteもPostgreSQLもインストールされてしまう。
ひとつのAppに2つもDBがあるのはおかしいので、bundle installに特殊なフラグ**--without production**をかきくわえ、本番用のPostgreSQLだけインストールされないようにする。
- (PostgreSQLを(--without productionで除外して結局インストールしないくせに)Gemfileに書くのは、Gemfile.lockに伝えておくため。伝えておかないと、デプロイしたとき、うまくいかない)
。。。以上、私なりの懸命な解釈です。
いかがでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/03 05:26
2018/10/04 02:25
2018/10/06 10:15