Working with Ecto: Difference between revisions
From ElixirBlocks
No edit summary |
No edit summary |
||
(8 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
Working with ECTO in IEX can be confusing. These examples below are performed with a table named Testbeds created using the Phoenix Generator. The functions referenced are in app/testbeds.ex where '''app''' is the name of your application and '''testbeds.ex''' is the name of your table. | |||
Make sure you are aware of camel casing. | |||
==IEX Commands (with example data)== | |||
===Get All === | |||
<source> | |||
App.Testbeds.Testbed |> App.Repo.all | |||
</source> | |||
=== Insert === | |||
<source> | |||
%App.Testbeds.Testbed{name: "some-item-name"} |> App.Repo.insert | |||
</source> | |||
Line 10: | Line 42: | ||
<source> | <source> | ||
def reset_testbeds do | def reset_testbeds do | ||
items = from t in | items = from t in Testbed, where: t.status == "Taken" | ||
Repo.update_all(items, set: [status: "Available", developer: "None"]) | Repo.update_all(items, set: [status: "Available", developer: "None"]) | ||
|> broadcast_change([:testbed, :reset]) | |> broadcast_change([:testbed, :reset]) | ||
Line 17: | Line 49: | ||
</source> | </source> | ||
==References== | |||
== | https://brooklinmyers.medium.com/ecto-with-phoenix-in-4-minutes-9b7c447055c6 | ||
Latest revision as of 00:21, 7 October 2023
This page is in progress
Working with ECTO in IEX can be confusing. These examples below are performed with a table named Testbeds created using the Phoenix Generator. The functions referenced are in app/testbeds.ex where app is the name of your application and testbeds.ex is the name of your table.
Make sure you are aware of camel casing.
IEX Commands (with example data)
Get All
App.Testbeds.Testbed |> App.Repo.all
Insert
%App.Testbeds.Testbed{name: "some-item-name"} |> App.Repo.insert
Update all tables that contain a field with a chosen value
def reset_testbeds do items = from t in Testbed, where: t.status == "Taken" Repo.update_all(items, set: [status: "Available", developer: "None"]) |> broadcast_change([:testbed, :reset]) end
References
https://brooklinmyers.medium.com/ecto-with-phoenix-in-4-minutes-9b7c447055c6