我现在已经运行了几次change_column
迁移,它删除了我正在尝试进行更改的整个表。
class ChangePictureColumnInProperties < ActiveRecord::Migration
def change
change_column :properties, :pictures, :json
end
end
然后它会完全删除整个properties
表。
我正在尝试设置CarrierWave并且文档说“添加可以存储数组的列”并提供了一个使用JSON的示例,以提供我正在做的事情的上下文。
我是Rails的新手,所以不知道我在这里做错了什么。欣赏任何想法。
答案 0 :(得分:0)
如果您使用的是SQLite,则需要删除该表并再次创建,SQLite不支持删除,更改类型和重命名列(不删除条目)。
在迁移中,可以执行以下操作:
drop_table :properties
create_table :properties
add_column :properties, :your_previous_columns
add_column :properties, :your_previous_columns
add_column :properties, :pictures, :json
如果您有相关信息,可以创建另一个具有良好结构的表,导入您的信息并删除旧表。
重要! 我不相信json字段是最好的选择,你可以在你的条目和他的图像之间使用“一对多”的关系。
当您需要为您输入图像时,请使用“嵌套表格”。
使用嵌套表单,您可以发送属于您的条目的信息及其嵌套图像。