2016-02-14 113 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嗎? –