2016-02-14 116 views
0

我碰到一个change_column迁移现在几次,它会删除整个表我试图做出改变。change_column迁移删除表

class ChangePictureColumnInProperties < ActiveRecord::Migration 
def change 
    change_column :properties, :pictures, :json 
end 
end 

然后它只是完全删除整个properties表。

我试图建立CarrierWave和文档说“添加可以存储阵列中的列”和使用JSON,提供有关我在做什么背景下提供了一个例子。

我是新来的Rails所以不知道我在做什么错在这里。欣赏任何想法。

回答

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场将是最好的选择,你可以用一个“一对多”你进入他的图像之间的关系。

当你需要为你添加图像时,使用“嵌套表单”。

与嵌套窗体,您可以发送属于您的条目和他的嵌套图像的信息。

+1

感谢埃利亚斯。试过这个和同样的问题。它再次放弃了桌子。任何其他想法? – dgreen22

+0

你在使用sqlite吗? –