Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 如何在EXTO中更改字段类型?_Elixir_Phoenix Framework_Ecto - Fatal编程技术网

Elixir 如何在EXTO中更改字段类型?

Elixir 如何在EXTO中更改字段类型?,elixir,phoenix-framework,ecto,Elixir,Phoenix Framework,Ecto,我有一个模式: schema "editables" do field :title, :string field :content, :string timestamps end 现在我想将一个字段的类型从:integer更改为:binary。 因为使用add不起作用,所以编写迁移的正确方法是什么 def change do alter table(:editables) do add :title, :binary add :c

我有一个模式:

schema "editables" do
    field :title, :string
    field :content, :string

    timestamps
  end
现在我想将一个字段的类型从
:integer
更改为
:binary
。 因为使用
add
不起作用,所以编写迁移的正确方法是什么

def change do
    alter table(:editables) do
      add :title, :binary
      add :content, :binary

      timestamps
    end
  end
您必须使用来更改类型<代码>添加/3仅用于添加新列

alter table(:editables) do
  modify :content, :binary
end

但现在我遇到了这个错误:
错误(数据类型不匹配):列“title”不能自动转换为键入bytea
@PauloJaneiro如果您可以删除数据库,那么删除并重新创建将修复它。问题是它将无法自动迁移类型。@PauloJaneiro请确保也在模型中更新您的架构。对。所以这在生产中是无法做到的…谢谢Gazler。在我的例子中,我成功地从:string迁移到:text,但后来我不得不重新启动服务器。我遇到了一个奇怪的PostgreSQL错误。