Migrationメモ
よく使うタスク
rake db:migrate
rake db:migrate VERSION=1
rake db:schema:dump
rake db:session:create
--trace
マイグレーション基本の形(ファイル名:00x_create_locations.rb)
class CreateLocations < ActiveRecord::Migration def self.up create_table(:locations) do |t| t.column :user_id, :integer t.column :lat, :decimal, :precision => 18, :scale => 14 t.column :lng, :decimal, :precision => 18, :scale => 14 t.column :created_at, :datetime end execute 'INSERT INTO locations (user_id) VALUES (1)' end def self.down drop_table :locations end end
わかんなくなったら何を見ればいい?
http://api.rubyonrails.com/
SELECT、INSERT、DELETEなどのデータベース操作
ActiveRecord::ConnectionAdapters::DatabaseStatements
カラム追加・削除・変更などのカラム操作とか
ActiveRecord::ConnectionAdapters::SchemaStatements
t.columnに渡すパラメータとか
ActiveRecord::ConnectionAdapters::TableDefinitionを参照
よく忘れる
DECIMALカラム rails 1.2以上
t.column :lat, :decimal, :precision => 18, :scale => 14 t.column :lng, :decimal, :precision => 18, :scale => 14
:precision => 全体の桁数
:scale => 小数点以下
add_index
add_index(table_name, column_name, options = {})
カラム名は配列にすると複合インデックスっぽい。
例
add_index(:accounts, [:branch_id, :party_id], :unique => true)
は
CREATE UNIQUE INDEX accounts_branch_id_party_id_index ON accounts(branch_id, party_id)