fc2ブログ

2023.08 «  - - - - - 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 » 2023.10
TOP > migration初体験03【現在のDBテーブルをmigrationファイルに反映】

 ← migration初体験04【migrationファイルを使ってDBを変更】 | TOP | migration初体験02【migrationファイル自動生成】

migration初体験03【現在のDBテーブルをmigrationファイルに反映】 

2007年06月03日 ()
migration ファイルに書ける既存の DB の情報をどーにかして作りたいのです。

そこで登場するのが、インターネット様。既存の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 コマンドを使用してみたいと思います。



【広告】

[2007.06.03(Sun) 01:12] migration初体験Trackback(0) | Comments(0)
↑TOPへ

 ← migration初体験04【migrationファイルを使ってDBを変更】 | TOP | migration初体験02【migrationファイル自動生成】

COMMENT

COMMENT POST















管理者にだけ表示

 ← migration初体験04【migrationファイルを使ってDBを変更】 | TOP | migration初体験02【migrationファイル自動生成】