2017-05-04 179 views
0

我有PostgreSQL的,這工作了續集的遷移,但不下來:如何添加續集add_unique_constraint遷移下來塊

Sequel.migration do 
    change do 
    alter_table(:files) do 
     add_unique_constraint [:name, :folder] 
    end 
    end 
end 

當試圖從該塊往下遷移,續集的錯誤消息說,這是一種「不可逆轉的遷移」,並建議編寫我自己的「自下而上的方法」。

如何爲此特定遷移編寫down方法?

回答

1

docs

Sequel.migration do 
    up do 
    alter_table(:files) do 
     add_unique_constraint [:name, :folder] 
    end 
    end 

    down do 
    alter_table(:files) do 
     drop_constraint(:your_constraint_name, :type=>:unique) 
    end 
    end 
end 

你要搞清楚你的​​獨特性約束的名稱。它應該出現在你的模式中,它應該是類似於index_files_on_name_and_folder

+0

謝謝!我不明白的唯一約束的名稱。但是另一個問題是:我可能應該自己命名這個獨特的約束,以便它在所有環境中都是一樣的?關於您鏈接的相同文檔有一些信息。 –

+0

這似乎工作在上塊:「add_unique_constraint [:名稱,:文件夾],:unique_constraint_name =>」files_name_folder_key「 –