Elixir 凤凰城-改变列顺序
因此,我正在创建一个用于向数据库中的模型添加一个新列的EXTO迁移,我想更改列的顺序,因为这个新列被放在列的末尾,所以我尝试这样做: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不支持列重新排序。有一些黑客的解决方法,当然不是在
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
功能,或使用。