I am currently rebuilding a legacy application in Rails. The legacy application is based on PHP and uses a MySQL database.
The main challenge thus far is migrating the data across and conforming to a structure that is suitable for Rails.
The legacy PHP app has many tables with most having an identical column structure, the only exception being a couple of tables with additional columns. The reason for the separation is the data is being inserted by many different scripts, so just for troubleshooting/safety they are all split up.
What is the best way to transition this data across to Ruby on Rails?
If I were you, I would replicate / use the exact db as is, switch to Rails front-end and start verifying. Assuming you are using ActiveRecord
, you can easily overcome the issues of default primary key (id
), foreign key by using something like this:
class ModelName < ActiveRecord::Base
self.table_name = 'your old table / replicated table'
self.primary_key = 'your old primary key'
...
end
Associations can be specified as below
...
belongs_to :something, :foreign_key => 'old foreign key', :primary_key => 'pri_key'
...