モデルクラスをいろいろ
モデルクラスを作成する
kenmituo@hoge ~/Documents/Aptana Studio 3 Workspace/support $ rails generate model telecast member_name:string invoke active_record create db/migrate/20121009005600_create_telecasts.rb create app/models/telecast.rb invoke test_unit create test/unit/telecast_test.rb create test/fixtures/telecasts.yml
db/migrate/20121009005600_create_telecast.rb
class CreateTelecasts < ActiveRecord::Migration def change create_table :telecasts do |t| t.date :member_book t.string :member_name t.string :phone t.string :email
$ rake db:migrate == RentalHardwares: migrating =============================================== -- create_table(:rental_hardwares) -> 0.1180s == RentalHardwares: migrated (0.1190s) ====================================== == CreateTelecasts: migrating================================================ -- create_table(:telecasts) -> 0.0330s == CreateTelecasts: migrated (0.0340s)=======================================
カラムが足りないことに気がついた
kenmituo@hoge ~/Documents/Aptana Studio 3 Workspace/support $ rails generate migration AddCampusToTelecasts campus:integer invoke active_record create db/migrate/20121009023337_add_campus_to_telecasts.rb class AddCampusToTelecasts < ActiveRecord::Migration def change add_column :telecasts, :campus, :integer end end $ rake db:migrate == AddCampusToTelecasts: migrating =========================================== -- add_column(:telecasts, :campus, :integer) -> 0.1300s == AddCampusToTelecasts: migrated (0.1300s) ==================================
モデルクラスを作成する2
コマンドで入力するのは面倒すぎる。
$ rails generate migration AddColumnTelecast invoke active_record create db/migrate/20121010085849_add_column_telecast.rb
適当なカラム名と操作するテーブル名の指定だけで実行してみる
class AddColumnTelecast < ActiveRecord::Migration def up end def down end end
空っぽができたので頑張って書く。
rake db:migrateを実行したあとにMysqlにコマンドでカラムを追加して、バージョン管理済みのMigrationファイルにカラム追加の辻褄合わせを加筆したらエラー出まくりで進まなくなった。コマンドで削除してからMigrationファイルに加筆して実行、、、
rails destroy migration add_column_telecast
追加するカラムの位置を指定
やっと見つけたのがマイグレーションでカラムを追加する場所を指定する
class AddColumnMediaCopies < ActiveRecord::Migration def change add_column :media_copies, :booked_id, :integer, :after=>:booked_name end end $ rake db:migrate == AddColumnMediaCopies: migrating =========================================== -- add_column(:media_copies, :booked_id, :integer, {:after=>:booked_name}) -> 0.3630s