Skip to content

Instantly share code, notes, and snippets.

# docker build -t olivetree:builder --target=builder .
FROM elixir:1.8.1-alpine as builder
RUN apk add --no-cache \
gcc \
git \
make \
musl-dev
RUN mix local.rebar --force && \
mix local.hex --force
WORKDIR /app
iex(2)> import Ecto.Query
Ecto.Query
iex(3)> Video |> select([v], v.id)
#Ecto.Query<from v0 in DB.Schema.Video, select: v0.id>
iex(4)> Video |> select([v], v.id) |> DB.Repo.all()
[debug] QUERY OK source="videos" db=1.9ms decode=2.6ms queue=6.5ms
SELECT v0."id" FROM "videos" AS v0 []
[1]
iex(5)> Video |> select([v], v.id) |> DB.Repo.all() |> Enum.map(&Video.changeset_generate_hash_id/1)
[debug] QUERY OK source="videos" db=0.3ms
...
config :my_app_api, MyAppApi.Endpoint,
url: [host: "api.%%%%.app"],
secret_key_base: "%%%%",
render_errors: [view: MyAppApi.ErrorView, accepts: ~w(html json)],
pubsub: [name: MyAppApi.PubSub, adapter: Phoenix.PubSub.PG2],
live_view: [signing_salt: "%%%%"]
...
# ** (Ecto.Query.CompileError) Tuples can only be used in comparisons with literal tuples of the same size
def search(query_string, offset \\ 0, limit \\ 0,
media_category,
playlist_uuid,
channel_uuid,
published_after
) do
conditions = false
@mazz
mazz / query.ex
Created April 23, 2019 00:53
line 18 and line 19 assignment does not impact outer scope established on line 1 and line 2
direction = :asc
sorting = :track_number
# direction = :desc
# sorting = :presented_at
media_category = Ecto.Query.from(playlist in Playlist,
where: playlist.uuid == ^playlist_uuid,
select: playlist.media_category)
|> Repo.one
|> IO.inspect
@mazz
mazz / ecto_postgres_fulltext_search_querying_example.ex
Created April 16, 2019 01:31 — forked from pmarreck/ecto_postgres_fulltext_search_querying_example.ex
How to set up postgres fulltext search triggers, index, and tsvector column on Elixir/Phoenix, with Ecto querying, including ranking and sorting by rank
defmodule YourAppName.Search do
# ...
@doc """
Queries listings.
"""
def query_listings(query, current_user) do
default_scope = from l in Listing, where: l.draft == false or l.user_id == ^current_user.id, order_by: [desc: l.updated_at], limit: 50
id = _try_integer(query)
routes chunk:
```
# ---- Pipelines ----
pipeline :browser do
plug :accepts, ["html"]
plug :fetch_session
plug :fetch_flash
plug :protect_from_forgery
plug :put_secure_browser_headers
@mazz
mazz / stuff.ex
Created February 20, 2019 22:24
Phoenix.Template.UndefinedError
Phoenix.Template.UndefinedError at GET /
Could not render "app.html" for WordApi.LayoutView, please define a matching clause for render/2 or define a template at "lib/faithful_word_api/templates/layout". No templates were compiled for this module. Assigns:
%{__phx_template_not_found__: WordApi.LayoutView, conn: %Plug.Conn{adapter: {Plug.Cowboy.Conn, :...}, assigns: %{layout: {WordApi.LayoutView, "app.html"}}, before_send: [#Function<0.116269836/1 in Plug.CSRFProtection.call/2>, #Function<2.65282597/1 in Phoenix.Controller.fetch_flash/2>, #Function<0.58261320/1 in Plug.Session.before_send/2>, #Function<1.112466771/1 in Plug.Logger.call/2>, #Function<0.66982185/1 in Phoenix.LiveReloader.before_send_inject_reloader/2>], body_params: %{}, cookies: %{"cookieconsent_status" => "dismiss"}, halted: false, host: "localhost", method: "GET", owner: #PID<0.736.0>, params: %{}, path_info: [], path_params: %{}, port: 4000, private: %{WordApi.Router => {[], %{}}, :phoenix_action => :index, :phoenix_controller => WordApi.Pa
Ecto.Query.from(fer in Transfer,
join: tn in Transaction,
where: fer.transaction_id == tn.id,
order_by: tn.absolute_id,
select: %{title: tn.basename, localizedTitle: fer.localizedname, uuid: tn.uuid, languageId: fer.language_id})
|> Repo.all
#
# Sphinx configuration file sample
#
# WARNING! While this sample file mentions all available options,
# it contains (very) short helper descriptions only. Please refer to
# doc/sphinx.html for details.
#
#############################################################################
## data source definition