bjo*_*k24 4 mysql ruby-on-rails-3
我正在尝试将旧的PHP应用程序移植到Rails.我转储了旧的mysql表并将它们上传到运行新rails应用程序的服务器.将数据从旧的旧表迁移到新的Rails模型的最佳方法是什么?我可以编写一个PHP脚本来吐出ruby中的所有内容,然后使用它来填充seed.rb,但似乎应该有一种更简单的方法来实现这一点.
新的应用程序是RoR 3.0.9,数据库仍然是mysql.
我会编写一个rake任务来连接旧表并将它们转储到新的db.像这样的东西:
# 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
Run Code Online (Sandbox Code Playgroud)
并致电: RAILS_ENV=production bundle exec rake import:legacy
| 归档时间: |
|
| 查看次数: |
932 次 |
| 最近记录: |