gpt4 book ai didi

mysql - 如何将遗留的 PHP mysql 数据迁移到新的 Rails 数据模型?

转载 作者:可可西里 更新时间:2023-11-01 07:19:05 24 4
gpt4 key购买 nike

我正在尝试将一个旧的 PHP 应用程序移植到 Rails。我转储了遗留的 mysql 表并将它们上传到运行新 Rails 应用程序的服务器。将数据从旧遗留表迁移到新 Rails 模型的最佳方法是什么?我可以编写一个 PHP 脚本来吐出 ruby​​ 中的所有内容,然后使用它来填充 seed.rb,但似乎应该有一种更简单的方法来实现这一点。

新应用是RoR 3.0.9,数据库还是mysql。

最佳答案

我会编写一个 rake 任务来连接旧表并将它们转储到新数据库。像这样:

# 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

关于mysql - 如何将遗留的 PHP mysql 数据迁移到新的 Rails 数据模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8417332/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com