如何删除Ecto中的列默认值?

时间:2017-02-17 18:35:16

标签: elixir ecto

如何在Ecto中编写迁移以删除列的默认值?假设我有一个名为:users的表,其中一列名为:timezone,之前默认为“Etc / UTC”......

这是我迁移的开始......

  def up do
    alter table(:users) do
      modify :timezone, :string, default: fragment("NULL"), null: true
    end
  end
  def down do
    alter table(:users) do
      modify :timezone, :string, default: "Etc/UTC", null: false
    end
  end

1 个答案:

答案 0 :(得分:1)

来自TabPages

  

如果没有显式声明默认值,则默认值为空值。

所以@Dogbert是正确的,ALTER COLUMN "timezone" DROP DEFAULT是要走的路。

如果您真的想,可以使用TabCount直接编写SQL命令SYSTEMTIME