LoginSignup
2
2

More than 5 years have passed since last update.

【初心者用】Active Recordを使ったデータベース(テーブル)の作成手順

Last updated at Posted at 2017-02-28

 ActiveRecordは元々Rails用に作られたものだから当然といえば当然なのだけれど、Rails以外の環境でActiveRecordを使ってテーブルを作成する流れをざっと見やすくわかりやすくまとめた情報は少ないので、SinatraとSQLite3を使った作成手順を個人的Tips付きで復習用にまとめてみる。

実行環境

  • Ruby (2.1.3)
  • Sinatra (1.2.0)
  • ActiveRecord
  • SQLite3

ActiveRecordとは

 PHPやSQLの知識がなくてもRuby+αの知識でデータベースを構築できる便利なツール(超訳)

作成手順

コードを書く前に

0. 必要な情報を整理する

 そのデータベースやテーブルにはどんなデータが必要で、そのデータは文字列.stringなのか、真偽値.booleanなのか、はたまた日時.datetimeなのかなど、どんな形のデータにあたるのかをまとめて、データベース全体や各テーブルについて設計する。

ActiveRecordを使う準備をする

1. Gemfileに必要なことを書き加えてgemを追加

souce "https://rubygems.org"
gem 'sinatra'
gem 'sinatra-contrib'
gem 'sinatra-activerecord'
gem 'sqlite3'
gem 'rake'

 Gemfileにこれらを書き加えて、bundle。ターミナルで操作する前に絶対に保存するいつまで経ってもbundleのタイプミスしがち。

2. Rakefileを作成し、Rakefikeに必要なことを書く、保存

実際に作っていく

3. models.rbを作成、書く、保存

 models.rbはSQLiteと接続して、データベース全体の設計をするところ。

4. rake db:create_migration NAME=テーブル名(複数形)

5. migrationファイルを書く

 個々のテーブルの設計を落とし込んでいく。

6. rake db:migrate

 実際にデータベースを構築するSQLiteへ変更を送信(超訳)。

作成したテーブルを確かめる

7. schema.rbで確認

 データベースの最新状況がここにまとめて表示される。自動生成されるこのファイルは閲覧専用につき注意。

8. 修正したいとき

1. 新規migration fileでremove_colmnadd_colmnをする

 そのままdef changeのときとdef up/ def downを使うときがあるぞ!

2. rake db:rollback STEP=n

 SQLiteのデータベースへmigration fileを追加する前の状態へ時間を巻き戻せる呪文。rollbackするときは、rollback前に該当ファイルをいじってはいけない。

まとめ

  • 慣れたらそんなに難しくない。はず。
  • Gitの更新みたいにちゃんと手順を踏んで作っていく。
  • 事前にちゃんと情報を整理して、設計しておくのと、実行前に見直しをしっかりする!

いくらお手軽データベース作成ツールとはいえ通常のコードの修正と比べると修正するのに手間がかかって面倒だから、はじめのうちは慎重につくるように心掛けたほうがいい気がする。

参考文献

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2