Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
2
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

【rails】GithubからDLしたファイルをhttp://localhost:3000/で見れるようにするまで

① [$ git clone 自分のgitリポジトリのURL]

まずはクローンします
[参考]GitHubのリポジトリをローカルにcloneする
http://cly7796.net/wp/other/clone-the-repository-in-github-locally/

②必要であれば [$ bundle exec rake db:drop]

$ bundle exec rake db:drop

※同じDBが存在していて作り直す場合にこのコマンドを行う

③[$ bundle install]

まずはbundle installします。

※フォルダ名を変更した場合は、⑥から!

④[$ bundle exec rake db:create]

$ bundle exec rake db:create

でdb作成します。

⑤[$ bundle exec rake db:migrate]

$ bundle exec rake db:migrate

migmateします。
DLしたファイルに入ってるマイグレートファイルを自分のところにマイグレートします。

⑥必要であれば 「config/database.yml」のデータベースの接続先を変更する。

例えば「tweet_app」(仮)的なツイッターコピーサイトのようなものをDLした場合、

DL「tweet_app」を「tweet_app2」として環境構築したい場合

「config/database.yml」を開き、「tweet_app」と書かれている場所を「tweet_app2」で置換します。
その後、③から対応ください。

※vscode(mac)での置換は option + command + F です。
※他の環境の方はご自身で調べていただきたく:bow:

⑦ $ rails s

$ rails s

DLしたファイル自体に問題なければ、問題なく見れるようになります。

「config/database.yml」を更新しなかったらどうなるか?

例えば「tweet_app」DLして、「tweet_app2」環境構築したい場合に
フォルダ名だけ「tweet_app」から「tweet_app2」に変更し、③〜⑥を行うと、
データベースはyamlファイルの記述に基づき「tweet_app」で作成されて、
フォルダは「tweet_app2」となります。

「tweet_app2」フォルダの中で rails s してツイートを投稿したら、
投稿確認は「tweet_app」のdbで見ることになります。

動作はしますが、特にこだわりがなければ気持ち悪いので変更した方が良いと思います。

「config/database.yml」で同じDBを使用する指定

上記のことを踏まえると、同じDBを使用することが可能です。
例えば、「tweet_app2」を作ったけど、投稿内容は「tweet_app」と同じものをみたい場合などは
「tweet_app2」のyamlファイルは「tweet_app」と設定します。

カラムが増えたりするとdbとmodelファイルの齟齬が生まれるので、使いどきは見極めが必要そうですが。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
2
Help us understand the problem. What are the problem?