آنچه یاد خواهید گرفت:
اصول یک Ecto Changeset. وارد کردن تغییرات، تفاوتهای بین `data` و `changes`، داشتن اعتبارسنجیها، تفاوت با ساختارهای معمولی
اصول یک Ecto Migration. راهاندازی پایگاه داده، مهاجرت آن، افزودن ایندکس ها و محدودیتها، یکتایی، کلیدهای اصلی UUID، روابط بین جداول
اصول Ecto Schema. مانند Casting و Casting ارتباطات، اسکیمای تعبیه، ارتباطات با UUID به عنوان کلید اصلی، belongs_to/has_one/has_many/has_many through
اصول Ecto Multi، تراکنشها، قفلها در آنها و درج/بروزرسانی دستهای. insert_all/update_all و محدودیتهای آنها
اصول Ecto Query. جستجو با شرایط `where`، گروهبندی و مرتبسازی بر اساس فیلدها
ساخت یک کانتکست با توابع نمونه برای ایجاد، خواندن، اصلاح و حذف رکوردها (CRUD)
اصول تستکردن changesets و توابعی که روی پایگاه داده عمل میکنند.
توضیحات دوره
اجازه دهید شما را با مفهوم Changeset آشنا کنیم: چگونه داده را cast کنیم، تغییرات را اعمال کنیم، اعتبارسنجی انجام دهیم و تفاوتهای بین فیلدهای `data` و `changes` را بشناسیم.
درباره تفاوت ساختارها و Changesetها بیاموزید.
بیایید به پل ارتباطی بین Changeset و پایگاه داده شما با استفاده از Phoenix بپردازیم.
با ژنراتورهای Phoenix آشنا شوید و توضیح میدهیم که کار آنها چیست.
درباره مهاجرتها بیاموزید، ایندکس ها و محدودیتها را اضافه کنید، شناسههای عددی را به UUID تغییر دهید.
Ecto.Schema. فیلدها را تنظیم کنید. بیایید ببینیم اسکیمای تعبیه چه هستند، با ایجاد embed_one و embeds_many که رابطههای داخل یک رکورد هستند. انواع ارتباطات (has_one ،has_many، has_many through و has_many با UUID به عنوان کلید خارجی)،
با Ecto.Repo آشنا شوید. چگونه رکوردها را درج، بروزرسانی، خواندن و حذف کنیم.
درباره Ecto.Query بیاموزید. چگونه یک کوئری بنویسیم تا رکوردهای مورد نظر را دریافت کنیم.
همه را در یک ماژول کانتکست کنار هم قرار دهید.
داده اولیه اپلیکیشن خود را بارگذاری کنید. اسکریپتی راه اندازی کنید که بهطور خودکار بیش از 50000 رکورد تازه در پایگاه داده درج کند.
درباره عملیات دستهای بیاموزید. Repo.insert_all/update_all و محدودیتهای آنها
قدرت Ecto.Multi، تراکنشهای پایگاه داده و تضمین سازگاری داده را ببینید.
همه را تست کنید: Changesetها و کل کانتکست
این دوره برای چه کسانی مناسب است؟
توسعهدهندگان مبتدی Elixir/Phoenix که میخواهند دیدی کلی از امکانات Ecto و قابلیتهای آن داشته باشند.