facebook twitter hatena line email

Ruby/rails/migration

提供: 初心者エンジニアの簡易メモ
2017年11月11日 (土) 20:36時点におけるAdmin (トーク | 投稿記録)による版

移動: 案内検索

DBインターフェイス用モデル(マイグレーション)作成

rails generate scaffold user name:string age:integer

db/migrate/20110603100919_create_users.rbに出来ている

DBインターフェイス用モデル(マイグレーション)削除

rails destroy scaffold user

マイグレーション実行

developmentの場合

rails db:migrate RAILS_ENV=development

productionの場合

rails db:migrate RAILS_ENV=production

db/schema.rbができdbにtableが作成される。

マイグレーション実行初期化

以下実行後マイグレーション再実行

rails db:migrate version=0

できたtable

CREATE TABLE `users` (
 `id` bigint(20) NOT NULL AUTO_INCREMENT,
 `name` varchar(255) DEFAULT NULL,
 `age` int(11) DEFAULT NULL,
 `created_at` datetime NOT NULL,
 `updated_at` datetime NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4

idやageにunsignedが入ってないのに注意。

httpアクセス

ttp://localhost:3000/users

カラムを変更する場合

rails g migration ChangeColumnToUser

作成されたファイルに変更情報を記載

vi db/migrate/20171107223726_change_column_to_user.rb

string : 文字列
text : 長い文字列
integer : 整数
float : 浮動小数
decimal : 精度の高い小数
datetime : 日時
timestamp : タイムスタンプ
time : 時間
date : 日付
binary : バイナリデータ
boolean : Boolean

サンプル

def change
   change_column :users, :wintimes, :integer , default: 0
   change_column :users, :losetimes, :integer , default: 0
   change_column :users, :rating, :integer , default: 1500
end