Current section
Files
Jump to
Current section
Files
doc/readme.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="ExDoc v0.29.4">
<meta name="project" content="entity v0.1.1">
<title>Entity — entity v0.1.1</title>
<link rel="stylesheet" href="dist/html-elixir-HHVY3JYD.css" />
<script src="dist/handlebars.runtime-NWIB6V2M.js"></script>
<script src="dist/handlebars.templates-XWGFFSCD.js"></script>
<script src="dist/sidebar_items-11B9BF61.js"></script>
<script src="docs_config.js"></script>
<script async src="dist/html-JDI3AVDD.js"></script>
</head>
<body data-type="extras" class="page-extra">
<script>
try {
var settings = JSON.parse(localStorage.getItem('ex_doc:settings') || '{}');
if (settings.theme === 'dark' ||
((settings.theme === 'system' || settings.theme == null) &&
window.matchMedia('(prefers-color-scheme: dark)').matches)
) {
document.body.classList.add('dark')
}
} catch (error) { }
</script>
<div class="main">
<button class="sidebar-button sidebar-toggle" aria-label="toggle sidebar">
<i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i>
</button>
<section class="sidebar">
<form class="sidebar-search" action="search.html">
<button type="submit" class="search-button" aria-label="Submit Search">
<i class="ri-search-2-line" aria-hidden="true" title="Submit search"></i>
</button>
<button type="button" tabindex="-1" class="search-close-button" aria-label="Cancel Search">
<i class="ri-close-line ri-lg" aria-hidden="true" title="Cancel search"></i>
</button>
<label class="search-label">
<p class="sr-only">Search</p>
<input name="q" type="text" class="search-input" placeholder="Search..." aria-label="Input your search terms" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
</label>
</form>
<div class="autocomplete">
<div class="autocomplete-results">
</div>
</div>
<div class="sidebar-header">
<div class="sidebar-projectDetails">
<a href="readme.html" class="sidebar-projectName" translate="no">
entity
</a>
<div class="sidebar-projectVersion" translate="no">
v0.1.1
</div>
</div>
<ul class="sidebar-listNav">
<li><a id="extras-list-link" href="#full-list">Pages</a></li>
<li><a id="modules-list-link" href="#full-list">Modules</a></li>
</ul>
</div>
<div class="gradient"></div>
<ul id="full-list"></ul>
</section>
<section class="content">
<output role="status" id="toast"></output>
<div class="content-outer">
<div id="content" class="content-inner">
<h1>
<button class="icon-action display-settings">
<i class="ri-settings-3-line"></i>
<span class="sr-only">Settings</span>
</button>
<a href="https://github.com/kamaroly/ecto_entity/blob/main/README.md#L1" title="View Source" class="icon-action" rel="help">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
<span class="sr-only">View Source</span>
</a>
<span>Entity</span>
</h1>
<h2 id="introduction" class="section-heading">
<a href="#introduction" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i>
<p class="sr-only">introduction</p>
</a>
Introduction
</h2>
<p>The missing Elixir Phoenix package to achieve Ecto > 80% common operations with < 20% effort.</p><p>Inspired by Laravel/ Php Eloquent package, Entity includes injectable functions that makes it enjoyable to interact with your database.
When using Entity, each database table has a corresponding Schema(Model) that is used to interact with that table.
In addition to retrieving records from the database table, Entity allows you to insert, update, and delete records from the table as well.</p><p>The goal of this package is to make it deadly simple to interact with Ecto without having to necessary write custom CRUD operations.</p><h2 id="getting-started" class="section-heading">
<a href="#getting-started" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i>
<p class="sr-only">getting-started</p>
</a>
Getting Started
</h2>
<p>This guide is an introduction to Entity, the missing Phoenix Ecto package to achieve +80% of common operations
less than 20% of effort it would normally take.
Entity provides a standardized API and a set of abstractions for interacting with database tables, so that your phoenix Elixir developers
can focus on what's specific to your project.</p><p>In this guide, we're going to learn some basics about Entity, such as creating,
reading, updating and destroying records from a database. If you want
to see the code from this guide, you can view it <a href="https://github.com/kamaroly/ecto_entity">at kamaroly/ecto_entity on GitHub</a>.</p><p><strong>This guide will require you to have setup Entity beforehand.</strong></p><h3 id="installation" class="section-heading">
<a href="#installation" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i>
<p class="sr-only">installation</p>
</a>
Installation
</h3>
<p>To add Entity to your application, The first step is to add Entity to your <code class="inline">mix.exs</code> file,
which we'll do by changing the <code class="inline">deps</code> definition in that file to this:</p><pre><code class="makeup elixir" translate="no"><span class="w">
</span><span class="kd">defp</span><span class="w"> </span><span class="nf">deps</span><span class="w"> </span><span class="k" data-group-id="6048079625-1">do</span><span class="w">
</span><span class="p" data-group-id="6048079625-2">[</span><span class="w">
</span><span class="p" data-group-id="6048079625-3">{</span><span class="ss">:entity</span><span class="p">,</span><span class="w"> </span><span class="s">"~> 0.1.0"</span><span class="p" data-group-id="6048079625-3">}</span><span class="w">
</span><span class="p" data-group-id="6048079625-2">]</span><span class="w">
</span><span class="k" data-group-id="6048079625-1">end</span><span class="w">
</span></code></pre><p>Then, to install it, you will run this command:</p><pre><code class="makeup elixir" translate="no"><span class="n">mix</span><span class="w"> </span><span class="n">deps</span><span class="o">.</span><span class="n">get</span></code></pre><h4>Configure Your Ecto Repo</h4><p>Ecto Entity needs to know what repository to use while running database query. To do that, add <code class="inline">config :entity, app_name: :your_app_name</code> to your config/config.exs file.
<code class="inline">:your_app_name</code> will be often the app configured in <code class="inline">mix.exs</code> under <code class="inline">project</code> > <code class="inline">app</code>.</p><pre><code class="makeup elixir" translate="no"><span class="kn">import</span><span class="w"> </span><span class="nc">Config</span><span class="w">
</span><span class="c1"># Configure your APP name so that Ecto Entity can know</span><span class="w">
</span><span class="c1"># What Ecto Repo to use for the entity</span><span class="w">
</span><span class="n">config</span><span class="w"> </span><span class="ss">:entity</span><span class="p">,</span><span class="w"> </span><span class="ss">app_name</span><span class="p">:</span><span class="w"> </span><span class="ss">:your_ecto_elixir_app_name</span><span class="w">
</span></code></pre><h4>Adding Entity To Your Schema</h4><p>To start off with, we'll need to include <a href="Entity.html"><code class="inline">Entity</code></a> in our existing Phoenix Schema using <code class="inline">use Entity</code> in your Schema module, like the following:</p><pre><code class="makeup elixir" translate="no"><span class="w">
</span><span class="kd">defmodule</span><span class="w"> </span><span class="nc">MyApp.Person</span><span class="w"> </span><span class="k" data-group-id="6316782711-1">do</span><span class="w">
</span><span class="kn">import</span><span class="w"> </span><span class="nc">Ecto.Changeset</span><span class="w">
</span><span class="kn">use</span><span class="w"> </span><span class="nc">Ecto.Schema</span><span class="w">
</span><span class="kn">use</span><span class="w"> </span><span class="nc">Entity</span><span class="w"> </span><span class="c1"># Include Entity in your normal schema</span><span class="w">
</span><span class="n">schema</span><span class="w"> </span><span class="s">"people"</span><span class="w"> </span><span class="k" data-group-id="6316782711-2">do</span><span class="w">
</span><span class="n">field</span><span class="w"> </span><span class="ss">:first_name</span><span class="p">,</span><span class="w"> </span><span class="ss">:string</span><span class="w">
</span><span class="n">field</span><span class="w"> </span><span class="ss">:last_name</span><span class="p">,</span><span class="w"> </span><span class="ss">:string</span><span class="w">
</span><span class="n">field</span><span class="w"> </span><span class="ss">:age</span><span class="p">,</span><span class="w"> </span><span class="ss">:integer</span><span class="w">
</span><span class="k" data-group-id="6316782711-2">end</span><span class="w">
</span><span class="kd">def</span><span class="w"> </span><span class="nf">changeset</span><span class="p" data-group-id="6316782711-3">(</span><span class="n">entity</span><span class="p">,</span><span class="w"> </span><span class="n">attrs</span><span class="p" data-group-id="6316782711-3">)</span><span class="w"> </span><span class="k" data-group-id="6316782711-4">do</span><span class="w">
</span><span class="n">entity</span><span class="w">
</span><span class="o">|></span><span class="w"> </span><span class="n">cast</span><span class="p" data-group-id="6316782711-5">(</span><span class="n">attrs</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="6316782711-6">[</span><span class="ss">:first_name</span><span class="p">,</span><span class="w"> </span><span class="ss">:last_name</span><span class="p" data-group-id="6316782711-6">]</span><span class="p" data-group-id="6316782711-5">)</span><span class="w">
</span><span class="o">|></span><span class="w"> </span><span class="n">validate_required</span><span class="p" data-group-id="6316782711-7">(</span><span class="p" data-group-id="6316782711-8">[</span><span class="ss">:first_name</span><span class="p">,</span><span class="w"> </span><span class="ss">:last_name</span><span class="p" data-group-id="6316782711-8">]</span><span class="p" data-group-id="6316782711-7">)</span><span class="w">
</span><span class="k" data-group-id="6316782711-4">end</span><span class="w">
</span><span class="k" data-group-id="6316782711-1">end</span></code></pre><h2 id="create" class="section-heading">
<a href="#create" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i>
<p class="sr-only">create</p>
</a>
Create
</h2>
<p><code class="inline">create/1</code> and <code class="inline">insert/1</code> can be used to stores create table entry.
Schema module must have changeset method implementedUse the create method, which accepts an schema of attributes, creates, and inserts it into the database.</p><p>The newly created schema will be returned by the create function.</p><pre><code class="makeup elixir" translate="no"><span class="gp unselectable">iex> </span><span class="nc">Person</span><span class="o">.</span><span class="n">create</span><span class="p" data-group-id="9930231269-1">(</span><span class="p" data-group-id="9930231269-2">%{</span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Hand"</span><span class="p">,</span><span class="w"> </span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Turner"</span><span class="p">,</span><span class="w"> </span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="9930231269-2">}</span><span class="p" data-group-id="9930231269-1">)</span><span class="w">
</span><span class="p" data-group-id="9930231269-3">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w">
</span><span class="p" data-group-id="9930231269-4">%</span><span class="nc" data-group-id="9930231269-4">Person</span><span class="p" data-group-id="9930231269-4">{</span><span class="w">
</span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="9930231269-5">#</span><span class="nc" data-group-id="9930231269-5">Ecto.Schema.Metadata</span><span class="p" data-group-id="9930231269-5"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="9930231269-5">></span><span class="p">,</span><span class="w">
</span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">125</span><span class="p">,</span><span class="w">
</span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Hand"</span><span class="p">,</span><span class="w">
</span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Turner"</span><span class="p">,</span><span class="w">
</span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="w">
</span><span class="p" data-group-id="9930231269-4">}</span><span class="p" data-group-id="9930231269-3">}</span></code></pre><h2 id="read" class="section-heading">
<a href="#read" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i>
<p class="sr-only">read</p>
</a>
Read
</h2>
<h2 id="find-1" class="section-heading">
<a href="#find-1" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i>
<p class="sr-only">find-1</p>
</a>
<code class="inline">find/1</code>
</h2>
<p>Returns entry with id matching what passed</p><pre><code class="makeup elixir" translate="no"><span class="w">
</span><span class="gp unselectable">iex> </span><span class="nc">Person</span><span class="o">.</span><span class="n">find</span><span class="p" data-group-id="7055136677-1">(</span><span class="mi">5</span><span class="p" data-group-id="7055136677-1">)</span><span class="w">
</span><span class="p" data-group-id="7055136677-2">%</span><span class="nc" data-group-id="7055136677-2">Person</span><span class="p" data-group-id="7055136677-2">{</span><span class="w">
</span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="7055136677-3">#</span><span class="nc" data-group-id="7055136677-3">Ecto.Schema.Metadata</span><span class="p" data-group-id="7055136677-3"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="7055136677-3">></span><span class="p">,</span><span class="w">
</span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w">
</span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Kristopher"</span><span class="p">,</span><span class="w">
</span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Keeling"</span><span class="p">,</span><span class="w">
</span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">9</span><span class="w">
</span><span class="p" data-group-id="7055136677-2">}</span></code></pre><h2 id="all-0" class="section-heading">
<a href="#all-0" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i>
<p class="sr-only">all-0</p>
</a>
<code class="inline">all/0</code>
</h2>
<p>Returns all database entries from a schema module</p><pre><code class="makeup elixir" translate="no"><span class="w">
</span><span class="gp unselectable">iex> </span><span class="nc">Person</span><span class="o">.</span><span class="n">all</span><span class="p" data-group-id="9398207244-1">(</span><span class="p" data-group-id="9398207244-1">)</span><span class="w">
</span><span class="p" data-group-id="9398207244-2">[</span><span class="w">
</span><span class="p" data-group-id="9398207244-3">%</span><span class="nc" data-group-id="9398207244-3">Person</span><span class="p" data-group-id="9398207244-3">{</span><span class="w">
</span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="9398207244-4">#</span><span class="nc" data-group-id="9398207244-4">Ecto.Schema.Metadata</span><span class="p" data-group-id="9398207244-4"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="9398207244-4">></span><span class="p">,</span><span class="w">
</span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w">
</span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"German"</span><span class="p">,</span><span class="w">
</span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"OConnell"</span><span class="p">,</span><span class="w">
</span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="w">
</span><span class="p" data-group-id="9398207244-3">}</span><span class="p">,</span><span class="w">
</span><span class="p" data-group-id="9398207244-5">%</span><span class="nc" data-group-id="9398207244-5">Person</span><span class="p" data-group-id="9398207244-5">{</span><span class="w">
</span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="9398207244-6">#</span><span class="nc" data-group-id="9398207244-6">Ecto.Schema.Metadata</span><span class="p" data-group-id="9398207244-6"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="9398207244-6">></span><span class="p">,</span><span class="w">
</span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w">
</span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Fritsch"</span><span class="p">,</span><span class="w">
</span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Kassulke"</span><span class="p">,</span><span class="w">
</span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">8</span><span class="w">
</span><span class="p" data-group-id="9398207244-5">}</span><span class="p">,</span><span class="w">
</span><span class="p" data-group-id="9398207244-7">%</span><span class="nc" data-group-id="9398207244-7">Person</span><span class="p" data-group-id="9398207244-7">{</span><span class="w">
</span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="9398207244-8">#</span><span class="nc" data-group-id="9398207244-8">Ecto.Schema.Metadata</span><span class="p" data-group-id="9398207244-8"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="9398207244-8">></span><span class="p">,</span><span class="w">
</span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w">
</span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Russel"</span><span class="p">,</span><span class="w">
</span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Collins"</span><span class="p">,</span><span class="w">
</span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="w">
</span><span class="p" data-group-id="9398207244-7">}</span><span class="w">
</span><span class="p" data-group-id="9398207244-2">]</span><span class="w">
</span></code></pre><h2 id="take-1" class="section-heading">
<a href="#take-1" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i>
<p class="sr-only">take-1</p>
</a>
<code class="inline">take/1</code>
</h2>
<p>Returns x number of records</p><pre><code class="makeup elixir" translate="no"><span class="w">
</span><span class="gp unselectable">iex> </span><span class="nc">Person</span><span class="o">.</span><span class="n">take</span><span class="p" data-group-id="3860001341-1">(</span><span class="mi">2</span><span class="p" data-group-id="3860001341-1">)</span><span class="w">
</span><span class="p" data-group-id="3860001341-2">[</span><span class="w">
</span><span class="p" data-group-id="3860001341-3">%</span><span class="nc" data-group-id="3860001341-3">Person</span><span class="p" data-group-id="3860001341-3">{</span><span class="w">
</span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="3860001341-4">#</span><span class="nc" data-group-id="3860001341-4">Ecto.Schema.Metadata</span><span class="p" data-group-id="3860001341-4"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="3860001341-4">></span><span class="p">,</span><span class="w">
</span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w">
</span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"German"</span><span class="p">,</span><span class="w">
</span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"OConnell"</span><span class="p">,</span><span class="w">
</span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="w">
</span><span class="p" data-group-id="3860001341-3">}</span><span class="p">,</span><span class="w">
</span><span class="p" data-group-id="3860001341-5">%</span><span class="nc" data-group-id="3860001341-5">Person</span><span class="p" data-group-id="3860001341-5">{</span><span class="w">
</span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="3860001341-6">#</span><span class="nc" data-group-id="3860001341-6">Ecto.Schema.Metadata</span><span class="p" data-group-id="3860001341-6"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="3860001341-6">></span><span class="p">,</span><span class="w">
</span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w">
</span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Fritsch"</span><span class="p">,</span><span class="w">
</span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Kassulke"</span><span class="p">,</span><span class="w">
</span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">8</span><span class="w">
</span><span class="p" data-group-id="3860001341-5">}</span><span class="w">
</span><span class="p" data-group-id="3860001341-2">]</span><span class="w">
</span></code></pre><h2 id="first-0" class="section-heading">
<a href="#first-0" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i>
<p class="sr-only">first-0</p>
</a>
<code class="inline">first/0</code>
</h2>
<p>Returns the first table entry</p><pre><code class="makeup elixir" translate="no"><span class="w">
</span><span class="gp unselectable">iex(1)> </span><span class="nc">Person</span><span class="o">.</span><span class="n">first</span><span class="w">
</span><span class="p" data-group-id="8182229017-1">%</span><span class="nc" data-group-id="8182229017-1">Person</span><span class="p" data-group-id="8182229017-1">{</span><span class="w">
</span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="8182229017-2">#</span><span class="nc" data-group-id="8182229017-2">Ecto.Schema.Metadata</span><span class="p" data-group-id="8182229017-2"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="8182229017-2">></span><span class="p">,</span><span class="w">
</span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w">
</span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Johnson"</span><span class="p">,</span><span class="w">
</span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Bradtke"</span><span class="p">,</span><span class="w">
</span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">4</span><span class="w">
</span><span class="p" data-group-id="8182229017-1">}</span><span class="w">
</span><span class="gp unselectable">iex(2)></span></code></pre><h2 id="last-0" class="section-heading">
<a href="#last-0" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i>
<p class="sr-only">last-0</p>
</a>
<code class="inline">last/0</code>
</h2>
<p>Returns the last table entry</p><pre><code class="makeup elixir" translate="no"><span class="w">
</span><span class="gp unselectable">iex(1)> </span><span class="nc">Person</span><span class="o">.</span><span class="n">last</span><span class="w">
</span><span class="p" data-group-id="0848626049-1">%</span><span class="nc" data-group-id="0848626049-1">Person</span><span class="p" data-group-id="0848626049-1">{</span><span class="w">
</span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="0848626049-2">#</span><span class="nc" data-group-id="0848626049-2">Ecto.Schema.Metadata</span><span class="p" data-group-id="0848626049-2"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="0848626049-2">></span><span class="p">,</span><span class="w">
</span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">36</span><span class="p">,</span><span class="w">
</span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Cedrick"</span><span class="p">,</span><span class="w">
</span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Donnelly"</span><span class="p">,</span><span class="w">
</span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="w">
</span><span class="p" data-group-id="0848626049-1">}</span><span class="w">
</span><span class="gp unselectable">iex(2)></span><span class="w">
</span></code></pre><h1>UPDATE</h1><p>Updates an existing entry</p><h2 id="update-2" class="section-heading">
<a href="#update-2" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i>
<p class="sr-only">update-2</p>
</a>
<code class="inline">update/2</code>
</h2>
<p>Updates an existing record identified by an ID</p><pre><code class="makeup elixir" translate="no"><span class="w"> </span><span class="gp unselectable">iex> </span><span class="nc">Person</span><span class="o">.</span><span class="n">update</span><span class="p" data-group-id="4024850133-1">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="4024850133-2">%{</span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Kamaro"</span><span class="p" data-group-id="4024850133-2">}</span><span class="p" data-group-id="4024850133-1">)</span><span class="w">
</span><span class="gp unselectable">iex> </span><span class="p" data-group-id="4024850133-3">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w">
</span><span class="p" data-group-id="4024850133-4">%</span><span class="nc" data-group-id="4024850133-4">Person</span><span class="p" data-group-id="4024850133-4">{</span><span class="w">
</span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="4024850133-5">#</span><span class="nc" data-group-id="4024850133-5">Ecto.Schema.Metadata</span><span class="p" data-group-id="4024850133-5"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="4024850133-5">></span><span class="p">,</span><span class="w">
</span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w">
</span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Kamaro"</span><span class="p">,</span><span class="w">
</span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Yundt"</span><span class="p">,</span><span class="w">
</span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span><span class="w">
</span><span class="p" data-group-id="4024850133-4">}</span><span class="p" data-group-id="4024850133-3">}</span><span class="w">
</span></code></pre><h2 id="updates-2" class="section-heading">
<a href="#updates-2" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i>
<p class="sr-only">updates-2</p>
</a>
<code class="inline">updates/2</code>
</h2>
<p>Updates an existing record identified by its Schema(Model)</p><pre><code class="makeup elixir" translate="no"><span class="w">
</span><span class="gp unselectable">iex(1)> </span><span class="n">person</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">Person</span><span class="o">.</span><span class="n">find</span><span class="p" data-group-id="7675330797-1">(</span><span class="mi">1</span><span class="p" data-group-id="7675330797-1">)</span><span class="w">
</span><span class="p" data-group-id="7675330797-2">%</span><span class="nc" data-group-id="7675330797-2">Person</span><span class="p" data-group-id="7675330797-2">{</span><span class="w">
</span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="7675330797-3">#</span><span class="nc" data-group-id="7675330797-3">Ecto.Schema.Metadata</span><span class="p" data-group-id="7675330797-3"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="7675330797-3">></span><span class="p">,</span><span class="w">
</span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w">
</span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Weber"</span><span class="p">,</span><span class="w">
</span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Ok 2"</span><span class="p">,</span><span class="w">
</span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span><span class="w">
</span><span class="p" data-group-id="7675330797-2">}</span><span class="w">
</span><span class="gp unselectable">iex(2)> </span><span class="nc">Person</span><span class="o">.</span><span class="n">update</span><span class="p" data-group-id="7675330797-4">(</span><span class="n">person</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="7675330797-5">%{</span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Kamaro"</span><span class="p" data-group-id="7675330797-5">}</span><span class="p" data-group-id="7675330797-4">)</span><span class="w">
</span><span class="p" data-group-id="7675330797-6">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w">
</span><span class="p" data-group-id="7675330797-7">%</span><span class="nc" data-group-id="7675330797-7">Person</span><span class="p" data-group-id="7675330797-7">{</span><span class="w">
</span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="7675330797-8">#</span><span class="nc" data-group-id="7675330797-8">Ecto.Schema.Metadata</span><span class="p" data-group-id="7675330797-8"><</span><span class="ss">:loaded</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="7675330797-8">></span><span class="p">,</span><span class="w">
</span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w">
</span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Kamaro"</span><span class="p">,</span><span class="w">
</span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Ok 2"</span><span class="p">,</span><span class="w">
</span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span><span class="w">
</span><span class="p" data-group-id="7675330797-7">}</span><span class="p" data-group-id="7675330797-6">}</span></code></pre><h1>DELETE</h1><h4><code class="inline">delete/1</code></h4><p>You may use <code class="inline">delete/1</code> or <code class="inline">destroy/1</code> to delete an existing table entry identifies by its ID.</p><pre><code class="makeup elixir" translate="no"><span class="gp unselectable">iex(2)> </span><span class="nc">Person</span><span class="o">.</span><span class="n">delete</span><span class="p" data-group-id="6356314365-1">(</span><span class="mi">7</span><span class="p" data-group-id="6356314365-1">)</span><span class="w">
</span><span class="p" data-group-id="6356314365-2">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w">
</span><span class="p" data-group-id="6356314365-3">%</span><span class="nc" data-group-id="6356314365-3">Person</span><span class="p" data-group-id="6356314365-3">{</span><span class="w">
</span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="6356314365-4">#</span><span class="nc" data-group-id="6356314365-4">Ecto.Schema.Metadata</span><span class="p" data-group-id="6356314365-4"><</span><span class="ss">:deleted</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="6356314365-4">></span><span class="p">,</span><span class="w">
</span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span><span class="w">
</span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Glover"</span><span class="p">,</span><span class="w">
</span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Schimmel"</span><span class="p">,</span><span class="w">
</span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="w">
</span><span class="p" data-group-id="6356314365-3">}</span><span class="p" data-group-id="6356314365-2">}</span></code></pre><h4><code class="inline">destroy/1</code></h4><pre><code class="makeup elixir" translate="no"><span class="w">
</span><span class="gp unselectable">iex(3)> </span><span class="nc">Person</span><span class="o">.</span><span class="n">destroy</span><span class="p" data-group-id="3827395118-1">(</span><span class="mi">2</span><span class="p" data-group-id="3827395118-1">)</span><span class="w">
</span><span class="p" data-group-id="3827395118-2">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w">
</span><span class="p" data-group-id="3827395118-3">%</span><span class="nc" data-group-id="3827395118-3">Person</span><span class="p" data-group-id="3827395118-3">{</span><span class="w">
</span><span class="ss">__meta__</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="3827395118-4">#</span><span class="nc" data-group-id="3827395118-4">Ecto.Schema.Metadata</span><span class="p" data-group-id="3827395118-4"><</span><span class="ss">:deleted</span><span class="p">,</span><span class="w"> </span><span class="s">"people"</span><span class="p" data-group-id="3827395118-4">></span><span class="p">,</span><span class="w">
</span><span class="ss">id</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w">
</span><span class="ss">first_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Ruecker"</span><span class="p">,</span><span class="w">
</span><span class="ss">last_name</span><span class="p">:</span><span class="w"> </span><span class="s">"Lemke"</span><span class="p">,</span><span class="w">
</span><span class="ss">age</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="w">
</span><span class="p" data-group-id="3827395118-3">}</span><span class="p" data-group-id="3827395118-2">}</span><span class="w">
</span></code></pre><h4><code class="inline">truncate</code></h4><p>You may truncate a database table by <code class="inline">truncate/0</code>. <code class="inline">truncate</code> delete all entries and reset the table index.</p><pre><code class="makeup elixir" translate="no"><span class="gp unselectable">iex(1)> </span><span class="nc">Person</span><span class="o">.</span><span class="n">truncate</span><span class="p" data-group-id="3923504907-1">(</span><span class="p" data-group-id="3923504907-1">)</span><span class="w">
</span><span class="p" data-group-id="3923504907-2">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w">
</span><span class="p" data-group-id="3923504907-3">%</span><span class="nc" data-group-id="3923504907-3">MyXQL.Result</span><span class="p" data-group-id="3923504907-3">{</span><span class="w">
</span><span class="ss">columns</span><span class="p">:</span><span class="w"> </span><span class="no">nil</span><span class="p">,</span><span class="w">
</span><span class="ss">connection_id</span><span class="p">:</span><span class="w"> </span><span class="mi">788</span><span class="p">,</span><span class="w">
</span><span class="ss">last_insert_id</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w">
</span><span class="ss">num_rows</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w">
</span><span class="ss">rows</span><span class="p">:</span><span class="w"> </span><span class="no">nil</span><span class="p">,</span><span class="w">
</span><span class="ss">num_warnings</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="w">
</span><span class="p" data-group-id="3923504907-3">}</span><span class="p" data-group-id="3923504907-2">}</span><span class="w">
</span><span class="gp unselectable">iex(2)></span><span class="w">
</span></code></pre>
<div class="bottom-actions">
<div class="bottom-actions-item">
<a href="api-reference.html" class="bottom-actions-button" rel="prev">
<span class="subheader">
← Previous Page
</span>
<span class="title">
API Reference
</span>
</a>
</div>
<div class="bottom-actions-item">
</div>
</div>
<footer class="footer">
<p>
<span class="line">
<a href="https://hex.pm/packages/entity/0.1.1" class="footer-hex-package">Hex Package</a>
<a href="https://preview.hex.pm/preview/entity/0.1.1">Hex Preview</a>
(<a href="https://preview.hex.pm/preview/entity/0.1.1/show/README.md">current file</a>)
</span>
<span class="line">
<button class="a-main footer-button display-quick-switch" title="Search HexDocs packages">
Search HexDocs
</button>
<a href="entity.epub" title="ePub version">
Download ePub version
</a>
</span>
</p>
<p class="built-using">
Built using
<a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.29.4) for the
<a href="https://elixir-lang.org" title="Elixir" target="_blank" translate="no">Elixir programming language</a>
</p>
</footer>
</div>
</div>
</section>
</div>
</body>
</html>