Programming Ecto (Pragprog)



by Darin Wilson and Eric Meadows-Jönsson

Languages may come and go, but the relational database endures. Learn how to use Ecto, the premier database library for Elixir, to connect your Elixir and Phoenix apps to databases of the SQL and NoSQL variety. Get a firm handle on Ecto fundamentals with a module-by-module tour of the critical parts of Ecto. Then move on to more advanced topics and advice on best practices with a series of recipes that provide clear, step-by-step instructions on scenarios commonly encountered by app developers. Co-authored by the creator of Ecto, this title provides all the essentials you need to use Ecto effectively.

Don’t forget you can get 35% off with your forum discount, use code ‘ElixirForum’ :023:

This title will be available on or about 2018-09-10

Programming Ecto - (Pragprog) - Questions & Feedback
How to get all entries by user_id
Enumerable not implemented for when rendering
Topics covered in Elixir in Action textbook

Do anyone know if they cover ETL usecases, Ecto Stream etc?


interesting thing is that does not (yet?) list this title.


It’s “leaked” via O’Reilly’s Safari listing.


So will it be available in June only? Is there any chance of getting beta release early?


Coming Up Next:
Programming Ecto: Build Database Apps in Elixir for Scalability and Performance, in beta

It’s not in beta yet … but it’s coming


I would like to say: What a nice front picture! Kudos :heart_eyes:!


Both Programming Phoenix ≥ 1.4 and Programming Ecto are coming on the same day, 2018-06-10. Wow!


Awesome! Looking forward to it!


Gone Beta!


Got the beta ebook. Excellent writing. Enjoyed reading it after using Ecto for a year and developing applications. Simply, This is the way to learn Ecto!


The b1.0 release contains:

Part - I: Ecto Fundamentals

  1. Getting Started With Repo
  2. Querying Your Database
  3. Connecting Your Tables To Wlixir Structs with Schemas
  4. Making Changes With Changesets
  5. Making Multiple Changes With Transactions and Multi
  6. Making Changes To Your Database

Part - II: Ecto Applied
7. Adding Ecto To An Elixir Application Without Phoenix
8. Working With Changesets And Phoenix Forms
9. Testing With Sandboxes
10. Creating And Using Custom Types
11. Inserting and Updating with Upserts
13. Working with Embedded Schemas

Coming soon…:
12. Optimizing Your Application Design
14. Creating Polymorphic Associations
15. Optimizing iEX For Ecto
16. Using Schemas Without Tables
17. Changing Your Database Pooling Strategy
18. Adding Streaming And High Throughput
19. Working with Database Functions

Given that covering Ecto in any real breadth and depth is really outside the scope of Programming Phoenix ≥ 1.4 it might be beneficial to cover Programming Ecto chapters 1-6 before hitting Programming Phoenix ≥ 1.4 chapter 4 Ecto and Changesets (though of course it is not strictly necessary).


Do you mean Part I, sections 1-6?

I was going to start on Programming Phoenix next, so curious why specifically you think 1-6 of this book should be read first - does PP kind of throw you into the deep end?

Like the sound of that - would be good if the book details how to use Ecto as per PragDave’s thoughts in his course as per Discussion: Don’t add a database layer to your Phoenix application :slight_smile:


Part I: pp. 3 - 116 (first six chapters)

does PP kind of throw you into the deep end?

That’s not it at all. It’s easy enough to simply follow along in PP without much trouble … however that doesn’t mean you will necessarily be left with a sense of what to do in your own application when the time comes.

Understandably PP would defer to Ecto’s documentation for further in depth study (and possibly What’s New in Ecto) after some introduction in 4. Ecto and Changesets (pp. 51-70) and 7. Ecto Queries and Constraints (pp. 118-142).

Having PE Part I under your belt (in particular 4. Making Changes With Changesets (pp. 61-84)) those chapters would be largely review and you would likely have a much better sense of what is going on.

On a personal note, I just prefer having some focused time with a particular technology. By necessity in PP you are constantly context switching between Plug & Router, Controllers & Views, EEx templates and Ecto. Having Ecto already more or less settled quiets things down a bit.

would be good if the book details how to use Ecto as per PragDave’s thoughts

That chapter, in detail, deals with the type of application setup already seen in the Getting Started Guide while elaborating on other aspects like how to set up multiple Repos. So “without Phoenix” relates more to the fact that one is doing work manually that otherwise a Phoenix generator would tend to do.


I’ve bough this book. It’s really great to improve your skills using Ecto.


Bought it. Enjoying it so far!



Programming Ecto (eBook) has recently been updated.
Changes in This Release

  • Added chapter 15, Optimizing iEX For Ecto
  • Renamed files containing code examples
  • Addressed errata


Will this book be updated to Ecto 3.0 once it’s released? I want to buy it but have a few books I have to read first. Would be pitty if the book is a bit outdated once I get to it :slight_smile:


Yes, it will be updated to Ecto 3.0 once the release candidate is out.


Nice to know and by the way I totally recommend this book!! Very easy to read and follow. Thanks @ericmj @darinwilson