rails迁移:向列添加注解而不更改类型

mrzz3bfm  于 2021-06-20  发布在  Mysql
关注(0)|答案(3)|浏览(415)

我目前正在执行一项任务,向数据库中的列添加大量注解。我目前正在接近它试图使用像下面的代码一样的change\u列函数;然而,我遇到了一些错误,并担心我可能会意外地改变一些类型,当我真的想离开他们。

change_column :tablename, :id, :bigint, comment: "id"

当相关列是外键时,这将导致以下错误:
mysql2::错误:无法更改列“id”:在表“databasename.tablename”的外键约束“fk\u rails\u8(8个字符的数字和字母序列)”中使用
我也尝试了以下方法,

change_column_comment :tablename, :id, comment:'ID'

它会导致以下错误:
更改列注解(:tablename,:id,{:comment=>“id”})
rails中止!notimplementederror:activerecord::connectionadapters::mysql2adapter不支持更改列注解

oewdyzsn

oewdyzsn1#

外键仍然是一个问题,但是通过提取当前的数据类型并在下面的语句结构中为每一列使用它们,我已经设法得到了一个合理的结果。

connection.execute("ALTER TABLE `tablename` MODIFY `id` bigint(20) comment 'ID'")
oxosxuxt

oxosxuxt2#

我也收到了同样的错误信息:
notimplementederror:activerecord::connectionadapters::mysql2adapter不支持更改列注解
发生时,您可以更改:
发件人:

def change
change_column :tablename, :id, :bigint, comment: "id"

收件人:

def up
change_column :tablename, :id, :bigint, comment: "id"
    end
    def down
change_column :tablename, :id, :bigint, comment: ""
    end

我的rails版本:5.1.5

7xllpg7q

7xllpg7q3#

我不明白你的意思,但是你为什么不使用add\u列而不是change\u列呢

add_column :tablename, :comment, :text, default: "ID"

相关问题