2012-09-19 33 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?

相關問題