またまたRails 3.1 ネタです。Rails 3.1 では migration ファイルのデフォルトフォーマットが変わりました。 rails g model blog title:string body:text としたとき、Rails 3.0 では下記のファイルが生成されます class CreateBlogs < ActiveRecord::Migration def self.up create_table :blogs do |t| t.string :title t.text :body t.timestamps end end def self.down drop_table :blogs end end Rails 3.1 では下記のファイルが生成されます。 class CreateBlogs < ActiveRecord::Migration def change cr
既存のテーブルに列を追加したい場合、ジェネレーターで migration add_column とかやるのだけど、Rails 2.0 では少し便利になって、以下のように書けるらしい。 >script/generate migration AddPriceToProduct price:decimalAddカラム名Toモデル名、の後にカラムのタイプ指定というフォーマット。これを実行すると db/migrate/20080427070207_add_price_to_product.rb のような名前で以下のマイグレーションファイルが自動生成される。 class AddPriceToProduct < ActiveRecord::Migration def self.up add_column :products, :price, :decimal end def self.down remo
なんですかこれは データベース構造をバージョン管理する仕組み SQLではなくRubyのコードでデータベース構造を記述することによって抽象化 本番環境への変更の適用漏れがなくなる ほかの開発環境や検証環境への変更の適用がバッチリ 必要があれば以前のバージョンに戻せる 複数のデータベースエンジンへの対応が簡単にできる MySQL, PostgreSQL, SQLite, SQL Server, Sybase, Oracle (メジャーなものはDB2以外ぜんぶだって) どうつかいますか $ svn up $ rake migrate セットで使う。 これで手元の開発環境のソースコードとデータベースの構造が最新のものになる。 仕組み schema_infoというテーブルとMigration定義ファイルの名前でバージョン管理 Migration関連の操作 rake db:schema:dump (r
Migrationとは Migration とは、Railsで使うデータベースの管理機能で、テーブル作成・カラ ムの追加/変更などの作業を一元管理できます。SQL でスキーマを書くのでは なく、Rails独自の記法(Rubyの文法の範囲内)を使ってDB管理を行います。以 下のようなメリットがあります。 スキーマのバージョン管理ができる rake コマンドでスキーマのバージョンアップ/ロールバックが可能 データベースに依存しない書き方ができるので、他のデータベースに切り替えるのが容易 対応しているデータベース 現在、対応しているデータベースは MySQL, PostgreSQL, SQLite, SQL Server, Oracle です。 今後、対応DBは増えていくと思います。最新情報は、 http://api.rubyonrails.org/classes/ActiveRecord/Mi
● [rails] Migration データベースのスキーマ(変更)を管理する機能です。もれなくこんな特典がついてきます。 運用環境でアプリケーションのバージョンを上げるときに、スキーマ変更の漏れがなくなる。 共同開発者がいる場合、rake 一発で自分のところにスキーマ変更を反映できる。(svn update と rake migrate はワンセット♪) バージョンコントロールされるので、Migrationで管理している任意の時点のスキーマに戻すことが可能。 スキーマ変更は ActiveRecord::Migration のサブクラスを作って定義します。リビジョン管理していますので、各バージョン毎に1つのクラスを追加することになります。そのクラスの中で定義した up, down というクラスメソッドの内容が、それぞれアップグレードとダウングレード時の処理として実行されます。Rails
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く