ОБ ЭТОМ ЭПИЗОДЕ
-
Need for distillery to run migrations on deploy
- We need to create release tasks that will go in the root of lib.
- That will have a migration and / or seed function in it.
- Then in the rel/config.exs we a list of tuples that have the task command, what we want to refer to it as, and the the shell script that we want it to run.
- Remember mix isn’t installed on the prod machine!
- the shell script just calls bin/postit command Elixir.Postit.ReleaseTasks migrate
- Then we, to run migration on app launch for new builds, back in rel/config.ex we add set post_start_hooks: "rel/hooks/post_start" to env prod. in this directory we have a single shell script that will use nodetool to ping when the, not app, but BEAM? is up and running, and then run the migration.
- We need to create release tasks that will go in the root of lib.
-
It’s great that I had the command correct in the this write up.
- bc i didn’t in the post_start script or the set commands script
- currently it’s in both to see which if both run?
Custom commands give you a lot of power to express potentially complex operations as a terse statement. I would encourage you to use them for these types of tasks rather than using the raw rpc and eval tasks!
-
App Engine to remove old instances
- save that for another day, i’m all dev ops out.
-
Force SSL
- we figured out that we’d forgotten the force_ssl : [] part all together. 🤦♂️
-
We are pretty bad at CSS. In a perpetual cycle kind of way. So we need to be better. This is definitely an area where we need to improve on.
- Posts will need to be a many-to-one to users or ‘authors’
- mix ecto.gen.migration update_posts_with_user_relationship
- why? so we can list posts by author. 🤦♂️
- post’s are not editable. once published, it’s done
- auto saving versions for undo?
- would that be a Postgres implementation? Where would that line be?
build_assoc(struct, assoc, attributes \ %{}) Builds a struct from the given assoc in model.
If the relationship is a has_one or has_many and the key is set in the given model, the key will automatically be set in the built association / Ecto Documentation
def change do alter table("posts") do add: user_id, :uuid end- We’re adding a column to our posts table user_id with data type uuid, as it should be a unique identifier? But I don’t really know, bc it’s coming from auth0. Still happy I didn’t role my own.
- Option B is we could reallocate the user table from auth0 i believe to be in our own database and then create a user scheme to get the info we need from it. That might be an option for another day?
- Search: elixir pattern match 2 string keys
- if I understand it I need to leverage pattern matching to get the user_id out of conn and into a map to pass to create_post which takes a single argument.
- protocol String.Chars not implemented for oh noes
-
We want a profile page for users
- can add 3rd party API Tokens
- update display name
- how does that work with auth0 as a user table
- should we move the storage table of users from auth0 to gcloud?
- mkdocs
- The Docs on Hex
- run ecto migrations in prod
- running ecto migrations with distillery
- running migrations
- Elixir Form talks
- Using Bulma and Sass in Phoenix
- external id’s for ecto
- notes on elixir pattern matching
- current user in elixir phoenix
- JavaScript to Elm
- Twitter: @jstoelm
- Email: jesse@jstoelm.com
- Jesse Tomchak
- Twitter: @jtomchak