我會寫一耙的任務線了舊錶,並將它們轉儲到新的數據庫。事情是這樣的:
# 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
,並呼籲有:RAILS_ENV=production bundle exec rake import:legacy
這是偉大的!謝謝! – bjork24
非常有幫助,謝謝。從基類繼承我沒有工作,我最後只是添加'establish_connection:legacy_db'到每個oldModel類。 –