2012-09-19 26 views
0

我试过Google搜索和stackoverflowing这个,但找不到答案,所以我想我会发布一个。将camelcase表和列名转换为mysql中的蛇情况

目前,我继承了遗留系统(PHP/MySQL),其中表名和列名在camelcase中定义(即tableName,columnName)。我想将此系统迁移到RoR,并希望将MySQL表也转换为蛇情况(即table_name,column_name)。

我该如何有效地做到这一点,并仍然成功迁移数据?有没有人做过这件事?

回答

0

你可以在你的模型覆盖表名:

class Project < ActiveRecord::Base 
    self.table_name = "project" 
end 

class Post < ActiveRecord::Base 
    def self.table_name 
    "special_" + super 
    end 
end 

Post.table_name # => "special_posts" 

更多信息:http://guides.rubyonrails.org/3_2_release_notes.html

你也可以做一个脚本,并重新命名表和使用轨道之后的约定,这取决于你!

从那里您可以使用rails migrations重命名列名称: How can I rename a database column in a Ruby on Rails migration?

相关问题