酔いどれエンジニアのブログ

有限会社wisdomのスタッフブログです。主にプログラミングやアプリケーション開発の話題を書いていきます。

ブログシステムを作りながらRailsを学ぶ(3) テーブル名を変える

さて、前回でひな形は作りましたが、blogsという名前から連想されるのは、沢山のブログの一覧だと思います。

記事の一覧を出したいのですから、この名前は不適切です。 正確に言い表すためにblogsarticlesに変えたいと思います。    

ブランチを切り替える

Gitは GitHub Flowに従って運用をしたいので、まずブランチを作りたいと思います。 手順は以下の通りです。

  1. 現在のブランチを確認
  2. 新しくブランチを作成そして確認
  3. ブランチを切り替えて確認

手順に沿って実行します。

$ git branch
* master

$ git branch rename_blogs_to_articles
$ git branch
* master
  rename_blogs_to_articles

$ git checkout rename_blogs_to_articles
Switched to branch 'rename_blogs_to_articles'

$ git branch
  master
* rename_blogs_to_articles

   

scaffoldをやり直す

blogsarticlesに変えるためには、テーブル名を変えるという方法とScaffoldをやり直すという方法が考えられます。

既に本番用のデータが入っているものを変えるには、テーブル名を変える方法をとるかと思いますが、まだテスト的なデータしか入っていない段階ですので、手っ取り早いScaffoldをやり直す方法を選択したいと思います。 手順は以下の通りです。

  1. scaffoldで作ったものを削除する
  2. テーブル名を変えたscaffoldを実行する
  3. マイグレーションをやり直す
  4. テーブルを確認する
  5. サーバーを立ち上げる
  6. ブラウザで確認をする

手順に沿って実行します。

$ rails d scaffold "blogs"
$ rails g scaffold article title:string content:text 
$ rake db:migrate:reset

$ sqlite3 db/development.sqlite3 
sqlite> .tables
articles           schema_migrations

sqlite> .exit
$ rails s

ブラウザから http://localhost:3000/articles にアクセスし動作することを確認して下さい。    

リモートリポジトリに送信し、マージする

確認ができたら、Gitに反映させましょう。

  1. 追加されたファイルをGitにも追加します
  2. ローカルリポジトリにコミットを行います
  3. ローカルリポジトリの内容をリモートリポジトリに送ります
$ git add .
$ git commit -am "blogsをarticlesに変更"
$ git push origin rename_blogs_to_articles

 

次に先ほどPushしたブランチをmasterに反映させます。 手順は以下の通りです。

  1. ブランチをmasterに切り替える
  2. マージする
  3. ローカルリポジトリの内容をリモートリポジトリに送ります。
$ git checkout master
$ git merge rename_blogs_to_articles
$ git push origin master

 

今回はBlogのベースを変更しましたのでTagをつけます。

$ git tag -a 0.2 -m "Plain Blog(blogs -> articles)"
$ git push --tag

以上で終了です。 今回はmerge実行時に衝突(コンフリクト)が起こらなかったため、全部自動でマージが出来ましたが、コンフリクトが起きた場合はその部分を手動で修正する必要がありますので注意して下さい。