You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails表名重命名求助:将custom.students改为custom.class_one_students

Rails 重命名带Schema的数据库表

生成迁移文件

先创建迁移文件:

rails generate migration RenameStudentsToClassOneStudents

编写迁移逻辑

由于表位于custom schema下,直接用Rails默认rename_table可能因schema解析问题失败,推荐两种可靠写法:

方法1:使用原生SQL(最稳妥)

编辑生成的迁移文件,在change方法中执行SQL重命名语句:

def change
  execute <<-SQL
    ALTER TABLE custom.students RENAME TO custom.class_one_students;
  SQL
end

方法2:使用Rails的rename_table方法

若偏好ORM方法,需用字符串包裹完整的带schema表名:

def change
  rename_table "custom.students", "custom.class_one_students"
end

更新关联模型(如有)

如果项目中有Student模型,需同步修改表名关联:

class Student < ApplicationRecord
  self.table_name = "custom.class_one_students"
end

若要同步修改模型名为ClassOneStudent,记得重命名模型文件(student.rb → class_one_student.rb)并更新类名,再设置对应表名。

执行迁移

最后运行迁移生效:

rails db:migrate

内容的提问来源于stack exchange,提问作者Foram

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 15:27:23