标签: ecto

是否有类似于Rails控制台的Phoenix

我正在学习Phoenix和Elixir,我来自Ruby/Rails,我在REPL中工作,pry用来检查我的数据库和应用程序状态.

我正试图弄清楚如何在Phoenix应用程序中与我的数据库和模型进行交互.我知道iex,但我不知道如何使用它从repl检查我的应用程序的数据库.我是否需要每次从repl使用ecto连接到它?有没有rails console等价物.我检查了Phoenix文件,Elixir Dose和Ecto repo,但找不到我要找的东西.我错过了什么吗?

编辑:根据下面的答案,我发现了ecto文档的这一部分.基于此我可以做类似的事情ArticlesApi.Repo.all ArticlesApi.Article

elixir ecto phoenix-framework iex

89
推荐指数
3
解决办法
2万
查看次数

如何使用原始sql与ecto回购

我有一个upsert要求,所以我需要调用postgres存储过程或使用公用表表达式.我还使用pgcrypto exgtension进行密码,并希望使用postgres函数(例如"crypt"来编码/解码密码).

但是我无法找到一种方法让Ecto部分或全部使用原始sql,它是否意味着ecto只支持elixir dsl并且当dsl不够时不允许shell-out到原始sql?

我发现我可以通过适配器查询(Rocket是应用程序的名称)

q = Ecto.Adapters.Postgres.query(Rocket.Repo,"select * from users limit 1",[])
Run Code Online (Sandbox Code Playgroud)

但不确定如何将其转化为模型.我是elixir的新手,似乎我应该可以使用Ecto.Model.Schem.schema/3但是失败了

Rocket.User.__schema__(:load,q.rows |> List.first,0)
** (FunctionClauseError) no function clause matching in Rocket.User.__schema__/3    
Run Code Online (Sandbox Code Playgroud)

elixir ecto

42
推荐指数
6
解决办法
2万
查看次数

如何使用Postgres使用Ecto存储数组

我想使用Postgres使用Ecto存储一个浮点值数组.我正在使用Ecto与Phoenix Framework和Elixir.

我如何为此定义模型和迁移?

我没有尝试太多,除了搜索网络,没有找到任何有用的东西:-(

我尝试使用如下模式定义模型:

  schema "my_model" do
    field :my_array, :array

    timestamps
  end
Run Code Online (Sandbox Code Playgroud)

出现错误"无效或未知类型:字段数组:my_array"

postgresql ecto phoenix-framework

38
推荐指数
2
解决办法
1万
查看次数

如何使用迁移更改Ecto模型中的列名?

有没有人知道(或可以提供)如何使用ecto DSL更改表列名称的示例

我猜我只是使用mix ecto.gen.migration然后我会用我的自定义代码填写空的创建文件(如果是这样,你将如何编辑列名,文档显示修改以更改列类型)

或者是否有一个命令行标志我可以传递给我生成迁移代码?

elixir ecto

36
推荐指数
2
解决办法
8223
查看次数

在Elixir中将Ecto模型编码为JSON

我正在阅读以下教程,试图了解一下elixir和phoenix:

https://robots.thoughtbot.com/testing-a-phoenix-elixir-json-api

我遇到了测试问题,主要是使用Poison.encode!在Contact模型上.我收到以下错误:

unable to encode value: {nil, "contacts"}
Run Code Online (Sandbox Code Playgroud)

这导致我出现以下问题:

https://github.com/elixir-lang/ecto/issues/840 和修复:https: //coderwall.com/p/fhsehq/fix-encoding-issue-with-ecto-and-poison

我已将博客文章中的代码添加到lib/poison_encoder.ex中,但我现在收到以下错误:

no function clause matching in Poison.Encoder.Any.encode/2
Run Code Online (Sandbox Code Playgroud)

我在lib/poison_encoder.ex中的代码:

defimpl Poison.Encoder, for: Any do
  def encode(%{__struct__: _} = struct, options) do
    map = struct
          |> Map.from_struct
          |> sanitize_map
    Poison.Encoder.Map.encode(map, options)
  end

  defp sanitize_map(map) do
    Map.drop(map, [:__meta__, :__struct__])
  end
end
Run Code Online (Sandbox Code Playgroud)

elixir ecto phoenix-framework

35
推荐指数
1
解决办法
7843
查看次数

什么是凤凰灵药的变化集

我在理解changeset模型时遇到问题.它能做什么?我们可以在一个模型中拥有多个变更集吗?例如一个用于创建,另一个用于更新.

有人可以用简单的方式详细说明,这样可以帮助其他人来凤凰城.

elixir ecto phoenix-framework

35
推荐指数
2
解决办法
9490
查看次数

Ecto中的多对多关系

我有一个用户模型和一个聊天模型.直观地,多个人将在任何时间属于同一个聊天组,每个人可以拥有许多聊天组.因此聊天组必须属于多个人user_id的.

我的聊天组和用户的架构是:

schema "chatGroups" do
    field :name, :string
    has_many :messages, Message
    belongs_to :user, User

    timestamps
end

schema "users" do
    field :name, :string
    has_many :chatGroups, ChatGroup

    timestamps
end
Run Code Online (Sandbox Code Playgroud)

任何建议如何处理这个?

elixir ecto phoenix-framework

32
推荐指数
2
解决办法
9419
查看次数

在ecto中创建一个独特的字段

如何unique在ecto中创建一个字段?

我认为它与Ruby中的活动记录相同,但似乎不是

elixir ecto

31
推荐指数
1
解决办法
1万
查看次数

在Ecto中一起创建两个列的唯一约束

如何在Ecto中的两列上创建唯一索引,这对应于:

CREATE TABLE someTable (
    col1 int NOT NULL,
    col2 int NOT NULL,
    primary key (col1, col2)
)
Run Code Online (Sandbox Code Playgroud)

elixir ecto

31
推荐指数
3
解决办法
1万
查看次数

如何查看为Ecto.Query生成的原始SQL?

我有一个Ecto.Query和一个Repo,这样我就可以打电话Repo.all(query)并获得结果.但是,结果并不是我所期望的.

如何查看Repo将从中生成的原始SQL Ecto.Query

elixir ecto

30
推荐指数
2
解决办法
8719
查看次数

标签 统计

ecto ×10

elixir ×9

phoenix-framework ×5

iex ×1

postgresql ×1