2011-12-07 7 views
4

私は古いPHPアプリケーションをRailsに移植しようとしています。私は従来のmysqlテーブルをダンプし、新しいレールアプリが実行されているサーバにアップロードしました。古いレガシー・テーブルから新しいRailsモデルにデータを移行する最善の方法は何ですか?私はrubyのすべてを吐き出し、それを使ってseed.rbを生成するPHPスクリプトを書くことができましたが、これを達成するためのより簡単な方法があるはずです。旧式のPHP mysqlデータを新しいRailsデータモデルに移行するには?

新しいアプリケーションはRoR 3.0.9で、データベースはまだmysqlです。

答えて

9

古いテーブルを配線して新しいデータベースにダンプするレーキタスクを作成します。このような何か:素晴らしいRAILS_ENV=production bundle exec rake import:legacy

+0

:と

# config/database.yml legacy_db: adapter: mysql username: foo password: bar # lib/tasks/import.rake namespace :import do desc 'import the legacy db data' task :legacy => :environment do # connect to legacy db class OldDb < ActiveRecord::Base establish_connection :legacy_db end # define classes for legacy tables class OldUser < OldDb set_table_name 'user' set_primary_key 'user_id' end # ...do this for all your old tables # import from old models to new models OldUser.all.each do |u| User.create( :user_name => u.login_name :created_at => Time.parse(u.account_opened_date) # etc.... ) end end end 

と呼んで!ありがとう! – bjork24

+0

非常に役に立ちました、ありがとう。ベースクラスからの継承は私にとってはうまくいかず、それぞれのoldModelクラスに 'establish_connection:legacy_db'を追加するだけでした。 –

関連する問題