• ベストアンサー

railsのmigration機能

Ruby on Railsのmigration機能は便利ですが、この機能をRuby on Rails以外のプロジェクトのユニットテストのために使いたいと思っています。 というわけでRoRプロジェクトを作成しないで同等のmigration機能だけを使用できるようなツールみたいなものを探していますが、見つかりません。 (当方のrubyとRoRの無知さから情報にたどり着けないだけの可能性あり。。) 何かいいツール知ってる方いましたら教えて下さい。 (rubyで書かれていなくてもNPです。)

  • Ruby
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

Railsプロジェクトでなくとも、Railsに組み込まれているactiverecordライブラリさえあればmigrationを利用可能です。ただし、その場合はrailsのconfig/database.ymlに書かれている相当のactiverecord初期化処理を自分で呼び出さねばなりません。 参考URLに挙げたようなやり方で、ActiveRecord::Base.establish_connectionを呼び出してactiverecordを初期化します。例えば次のような具合です。 require 'rubygems' gem 'activerecord' require 'active_record' # 仮にSQLite3を使用。ファイルhoge.sqlite3に書き出し ActiveRecord::Base.establish_connection \ :adapter => 'sqlite3', :database => 'hoge.sqlite3' # migrationを定義 class CreateUsers < ActiveRecord::Migration def self.up create_table(:users) do |t| t.string :name, :limit => 100, :null => false, :unique => true t.timestamps end end def self.down drop_table(:users) end end # 実行 CreateUsers.up

参考URL:
http://jp.rubyist.net/magazine/?0006-RubyOnRails
nsnaago
質問者

お礼

まさに望んだ回答ありがとうございます。 実はユニットテストしようとしているのは、RubyどころかC#で開発しているプロジェクトなんですけど、NDbUnitはまだoracleに対応していなくて困って外部コマンドを呼んだり等してました。(この方法だとテキストベースでデータを設定できない) その点、全てRubyで行えばこんなに簡単にできちゃいますよね。(C#の場合はIronRubyがある!Javaの場合はJRubyがあるけど、DbUnitはoracle対応済。) 参考URLに書かれていることと、クラスライブラリのActiveRecord.Baseについて読んでいこうと思います。

関連するQ&A

  • Ruby on RailsとMySQLについて質問です。

    Ruby on RailsとMySQLについて質問です。 Railsの別プロジェクトで作成したデータベースへアクセスするには、どうしたらよいでしょうか? 例)Aプロジェクト、Bプロジェクトがあります。 Bプロジェクト:Aプロジェクトのデータベースへアクセスし、Aテーブルのデータを取得したい。かつ、Bプロジェクトで作成したデータベースへもアクセス可能であること。 知っている方がいましたら、ぜひご教示願います。

  • Ruby on Rails で PostgreSQL

    Ruby on Rails で PostgreSQLを使おうと思っているのですが、何か問題はありますか? デフォルトのMySQLを使わないとRailsの便利さを活かせないと聞いたのですが。。。

  • Ruby on Railsの環境構築

    Mac OS X 10.6でRuby on Railsやりたいと思っているのですが、諸々のインストールがすみ、rails new helloworldとかで新規プロジェクトできるのですが、scriptフォルダーにserverが存在せずrailsというファイルだけあり、ruby script/serverをすることができません。 こういう状況ってなにがたりないのでしょうか。

    • ベストアンサー
    • Ruby
  • ruby on railsのscaffoldで配列を定義するには

    ruby on railsのscaffoldで配列を定義するには rails2.3での質問です。 通常、scaffoldで >ruby script/generate migration TestData name:string id:integer のようにデータ構造を指定すると思うのですが、この時に配列を定義するには どうしたら良いのでしょうか? 通常の(C言語のような)配列でもハッシュでも構いません。 よろしくお願いいたします。

    • ベストアンサー
    • Ruby
  • Ruby on Railsでサーバがセットアップされたことが確認できない

    送ればせながら、RoRどんなもんだろうと http://masuidrive.jp/rails/rails_app.html にしたがって、使い始めてみています。 WindowsXP SP2環境です。 プロジェクトを作ってWEBrickを起動(% ruby script\server)して http://localhost:3000 にアクセスしても、タイムアウトしてしまいます。 ※起動時には、エラーメッセージは出ていません Windowsファイヤーウォールを切ってアクセスしてみたりしていますが、何か基本的なところでつまづいている気がしてきています。 考えられる原因やチェックすべき箇所があれば、教えてください。

  • Instant Railsについて

    Instant Rails + RadRailsでRoRを始めようとしている初心者です。 http://www.itmedia.co.jp/enterprise/0703/articles/12/news018.html ↑を参考にして始めようとしましたが、2ページ目のテーブルを作るところでつまづきました。 migrationファイルは作成出来たのですが、 >rake migrate で The rake task migrate has been deprecated, please use the replacement version db となり、テーブルが作成されせん。 InstantRailsにパッケージされているmysqlのver.を確認したところ Ver 14.12 Distrib 5.0.27, for Win32 (ia32) でした。これを最新にするべきなのか、ほかにすべきことがあるのかご教示下さい。

  • Ruby on Rails でのログイン機能について

    Ruby on Rails でのログイン機能について あるPCアプリにログイン・ログアウトの機能をつけたいのですが、良い方法がなくて困っています。 現状は、プラグインのrestful_authenticationを使用しています。 しかし、ログアウトをせずにブラウザを閉じたあにページにアクセスすると自動でログインしていまいます。 何か良い方法はないでしょうか? 

  • Ruby on Railsでアプリケーションを作りたいんですが、phpMyAdminでデータベース表の作成がうまく行かないです。

    Ruby on Railsの利用できる環境を構築します。 Ruby、Rails、データベース、Webサーバの4つをまとめてセットにしてしまったソフト【InstantRails】を使用します。 バージョン:InstantRails-2.0-win.zip をダウンロードしました。 そこで、Ruby on Railsでアプリケーションを作成して見ます。 まずは、データベース表を作成します。 【Instant Rails】ウィンドウでApacheボタンをクリックし、メニューからStartを指定しましたが、Start状態に変わってないのです。 いろいろ調べましたが、原因がわかりません。 すごく困ってます。 ご指導をお願いいたします。

  • rails3.0 プルダウンの連動について

    ruby on railsにて開発を行っております。 web開発の経験はありますが、 rubyおよびrailsに関しては初心者です。 要件は以下の通りです。 A画面内でrenderにて部分テンプレートの構成となっております。 テンプレート内部にプルダウンを設け、プルダウンの連動により 読み込むテンプレートを切り替えていきたいと考えております。 現在collection_selectを用いてプルダウンを生成し、 onchangeにてremote_functionを呼び出すことで本機能を実装させようと考えておりますが、 テンプレートの切り替えがうまくいきません。 実装方法及び参考となるような情報をご教授いただければと思います。 よろしくお願いします。 環境 rails 3.0.7 ruby 1.9.2

  • Railsで作ったものにdispatch.cgiがない

    Ruby on Railsで作成したものをApacheで動かそうとしたのですが、 「public/dispatch.cgi」などのファイルが存在しませんでした。 「.htaccess」も作成されていないようです。 InstantRails(Rails 2.0.2)で作成したものには上記ファイルは存在します。 何か必要なものがあるのでしょうか? 環境 -Windows XP + coLinux -Debian 5.0.2 -ruby 1.8.7 -rails 2.3.3 railsはapt-getとgemと両方入れています。 (どこかのサイトを参考にしたのですが、失念してしまいました・・・。) 入力 $ cd /var/www/rails $ rails myapp $ cd myapp $ script/generate scaffold note line:string $ rake db:migrate ls -a publicの結果 . 404.html 500.html images javascripts stylesheets .. 422.html favicon.ico index.html robots.txt