migration初体験03【現在のDBテーブルをmigrationファイルに反映】
そこで登場するのが、インターネット様。既存のDBからmigration定義ファイルを作るにはを参考に、既存のテーブルから migration ファイルを引っ張ってみましょう。
myFirstというrubyプロジェクトがあるとして、
# cd myFirst
# rake db_schema_dump
としましたら…オイオイ、エラーが出ました。
The rake task db_schema_dump has been deprecated, please use the replacement version db:schema:dump
db_schema_dump の書き方はフルイんだそうです。もうこんなに進歩が早くてついていけるかしらん。
改めて、
# rake db:schema:dump
をやりましたら、エラーが表示されませんでした。その代わり何にも表示されませんでした。
これじゃどーすればいいのかまた途方に暮れますが、いろいろな場所を島田紳介さん以上に探し回りました。
そしたら、見つけましたよ、db ディレクトリの下に、新しく schema.rb ファイルが出来ているのを。
schema.rbの中身は、
ActiveRecord::Schema.define() do
create_table "books", :force => true do |t|
t.column "title", :string, :limit => 400, :default => "(no title)", :null => false
t.column "author", :string, :limit => 500, :default => "(no author)", :null => false
end
end
このコードのうち、create_table から、次の end までを db/migrate/001_new_columns_on_books.rb の、def self.up から、次の end までコピペします。
つまり、db/migrate/001_new_columns_on_books.rb はこういう風になります。
class NewColumnsOnBooks < ActiveRecord::Migration
def self.up
create_table "books", :force => true do |t|
t.column "title", :string, :limit => 400, :default => "(no title)", :null => false
t.column "author", :string, :limit => 500, :default => "(no author)", :null => false
end
end
def self.down
end
end
これで、現在のテーブルの形での migration ファイルが出来上がりました。
次回は、これにカラムを付け加えて、いよいよ rake migrate コマンドを使用してみたいと思います。
【広告】