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错误。