【发布时间】:2014-04-23 08:43:11
【问题描述】:
我在 Ruby on Rails 应用程序中重命名表时遇到问题。我有模型 CarAddition,现在我必须将它重命名为 AvailableCarAddition。所以我写迁移:
class RenameCarAdditionsToAvailableCarAdditions < ActiveRecord::Migration
def change
rename_table :car_additions, :available_car_additions
rename_column :car_additions_assignments, :car_addition_id, :available_car_addition_id
rename_column :car_addition_translations, :car_addition_id, :available_car_addition_id
rename_table :car_addition_translations, :available_car_addition_translations
end
end
当我尝试运行它时,出现以下错误:
Input string is longer than NAMEDATALEN-1 (63)/home/mateusz/.rvm/gems/ruby-2.1.1@rentcar/gems/activerecord-4.0.4/lib/active_record/connection_adapters/postgresql/quoting.rb:154:in `quote_ident'
这行导致问题:
rename_table :car_addition_translations, :available_car_addition_translations
我该如何解决这个问题?
【问题讨论】:
-
这可以帮助你:stackoverflow.com/questions/3836247/… 简短回答:你应该选择一个较短的表名
标签: ruby-on-rails ruby postgresql ruby-on-rails-4