Getting Started With Ecto: Fundamentals And Overview
Published 1/2024
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 2.42 GB | Duration: 3h 33m
Published 1/2024
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 2.42 GB | Duration: 3h 33m
Learn about Ecto Changeset, Migrations, Schema, Repo and Query from the beginning
What you'll learn
Fundamentals of an Ecto Changeset. Putting changes, differences between `data` and `changes`, having validations, differences from regular structs
Fundamentals of an Ecto Migration. Setting up a database, migrating it, adding indices and constraints, uniqueness, UUID primary keys, relations between tables
Fundamentals of Ecto Schema. Casting and casting associations, embedded schemas, assocs with UUID as primary key, belongs_to/has_one/has_many/has_many through
Fundamentals of Ecto Multi, transactions, locks in them and batch inserting/updating. insert_all/update_all and their limitations
Fundamentals of Ecto Query. Querying for `where` conditions, grouping and ordering by fields
Creating a context with example functions to Create Read Update Destroy records (CRUD)
Fundamentals of testing changesets and functions that operate on database.
Requirements
Basic knowledge of Elixir language
Description
Let me guide you through what is a Changeset: how to cast, put changes, validate, know the differences between `data` and `changes` fields. Learn about the difference between structs and Changesets.Let us get into the bridge between Changeset and your database using Phoenix. Learn about Phoenix generators and let's discuss what do they do. Learn about migrations, add indices and contstraints, change integer IDs to UUIDs. Ecto.Schema. Set fields, let's see what are Embedded Schemas by creating embed_one and embeds_many built-in-a-record relations. Associations of all kind (has_one, has_many, has_many through and has_many with UUID as a foreign key),Learn about the Ecto.Repo. How to insert, update, read from and delete records.Lean about Ecto.Query. How to compose a query to get the records you want.Put it all together to a Context module.Seed the initial data for your application. Set up a script to automatically insert over 50.000 fresh database records.Learn about bulk operations. Repo.insert_all/update_all and their limitations.See the power of the Ecto.Multi, database transactions, ensuring data consistency.Test it all: Changesets, all of the Context.The course may be followed along, i don't change the code off the camera. Though the suggested way to do the course is to just watch me talk to you very slowly and showing you around what's possible in Ecto. (:
Overview
Section 1: Introduction
Lecture 1 What you will learn in this course?
Section 2: Fundamentals of a Changeset
Lecture 2 Setting up a Mix project
Lecture 3 Changeset: Casting
Lecture 4 Changeset: Putting changes dynamically (part 1)
Lecture 5 Changeset: Putting changes dynamically (part 2)
Lecture 6 Changeset: `data` vs `changes`
Lecture 7 Changeset: Validations (part 1)
Lecture 8 Changeset: Validations (part 2)
Section 3: Ecto Changeset in a real database
Lecture 9 Setting up a simple docker database and a Phoenix app
Lecture 10 Phoenix: what do it's generators do?
Lecture 11 Ecto Migrations
Lecture 12 Structs vs Changesets
Lecture 13 Ecto Migration: Adding a unique index
Lecture 14 Ecto Schema: Adding a unique constraint
Lecture 15 Changing table's primary id key to an UUID
Lecture 16 Adding an index to a UUID column
Lecture 17 Embedded schema: embeds_one
Lecture 18 Embedded schema: embeds_many
Lecture 19 Embedded schema: Validating embeds
Lecture 20 Associations: has_many association
Lecture 21 Associations: has_one association
Lecture 22 Associations: has_many through
Lecture 23 Associations: has_many with UUID as foreign key
Lecture 24 Associations: Casting associations on multiple levels
Section 4: Ecto.Repo and database records
Lecture 25 Repo.insert and Repo.update
Lecture 26 Repo.all, Repo.get, Repo.get_by
Lecture 27 Ecto.Query object and where clause
Lecture 28 Creating a Context module: listing records
Lecture 29 Creating a Context module: creating records
Lecture 30 Creating a Context module: updating records
Lecture 31 Creating a Context module: getting records
Lecture 32 Creating a Context module: deleting records
Lecture 33 Seeding data
Lecture 34 More on Querying: where, select, group_by, order_by, offset, limit
Lecture 35 Database transactions and rolling back
Lecture 36 Repo.insert_all/.update_all and their limitations
Lecture 37 Repo.update_all
Lecture 38 Ecto.Multi
Section 5: Testing
Lecture 39 Testing Changesets
Lecture 40 Testing Contexts: list_all
Lecture 41 Testing Contexts: get_one
Lecture 42 Testing Contexts: create, update, delete
Beginner Elixir/Phoenix developers who want to have an overview of the functionality of Ecto and what it's capable of