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 凤凰城-改变列顺序_Elixir_Phoenix Framework_Ecto - Fatal编程技术网

Elixir 凤凰城-改变列顺序

Elixir 凤凰城-改变列顺序,elixir,phoenix-framework,ecto,Elixir,Phoenix Framework,Ecto,因此,我正在创建一个用于向数据库中的模型添加一个新列的EXTO迁移,我想更改列的顺序,因为这个新列被放在列的末尾,所以我尝试这样做: def change do alter table(:users) do add :password_hash, :string, after: :email end end 但它似乎没有效果,也没有抛出错误 PD:我使用的是mariadb。由于您没有编写要使用的数据库,我假设PostgreSQL不支持列重新排序。有一些黑客的解决方法,当然不是在

因此,我正在创建一个用于向数据库中的模型添加一个新列的EXTO迁移,我想更改列的顺序,因为这个新列被放在列的末尾,所以我尝试这样做:

def change do
  alter table(:users) do
    add :password_hash, :string, after: :email
  end
end
但它似乎没有效果,也没有抛出错误


PD:我使用的是mariadb。

由于您没有编写要使用的数据库,我假设PostgreSQL不支持列重新排序。有一些黑客的解决方法,当然不是在ecto中实现的


通常没有理由或需要更改列顺序。你为什么需要它?

我绝对不会建议在家里或学校这样做:),我也不确定它是否有用,但它应该有用。如果没有,请告诉我,我将删除答案;为了格式化,不作为评论发布

def更改do
query=“altertableusers”
添加列密码\u hash VARCHAR(255)
电子邮件之后;”
exto.Adapters.SQL.query!(回购,查询,[])
结束
它用于执行原始SQL



NB请查看下面@PatrickOscity提供的非常有价值的评论。

我使用的是mariadb,是的,我知道列顺序没有必要/好处,但我的OCD告诉我要顺序。您可以在ecto迁移中使用。还要注意,这不会正确回滚更改。为此,您可以使用单独的
up
down
功能,或使用。