Skip to content

Commit

Permalink
Upgrade to Commanded v0.16.0
Browse files Browse the repository at this point in the history
  • Loading branch information
slashdotdash committed Apr 30, 2018
1 parent c37f404 commit 7c958a8
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 25 deletions.
4 changes: 2 additions & 2 deletions lib/conduit/blog/aggregates/comment.ex
Expand Up @@ -55,8 +55,8 @@ defmodule Conduit.Blog.Aggregates.Comment do
@doc """
Stop the comment aggregate after it has been deleted
"""
def after_command(%DeleteComment{}), do: 0
def after_command(_), do: :infinity
def after_event(%CommentDeleted{}), do: :stop
def after_event(_), do: :timer.hours(1)

# state mutators

Expand Down
2 changes: 1 addition & 1 deletion lib/conduit/blog/blog.ex
Expand Up @@ -217,7 +217,7 @@ defmodule Conduit.Blog do
|> DeleteComment.assign_comment(comment)
|> DeleteComment.deleted_by(author)

Router.dispatch(delete_comment)
Router.dispatch(delete_comment, consistency: :strong)
end

defp get(schema, uuid) do
Expand Down
4 changes: 2 additions & 2 deletions mix.exs
Expand Up @@ -32,9 +32,9 @@ defmodule Conduit.Mixfile do
[
{:bcrypt_elixir, "~> 1.0"},
{:comeonin, "~> 4.0"},
{:commanded, "~> 0.15"},
{:commanded, "0.16.0", override: true},
{:commanded_ecto_projections, "~> 0.6"},
{:commanded_eventstore_adapter, "~> 0.3"},
{:commanded_eventstore_adapter, "0.4.0"},
{:cors_plug, "~> 1.4"},
{:cowboy, "~> 1.0"},
{:exconstructor, "~> 1.1"},
Expand Down
42 changes: 23 additions & 19 deletions mix.lock
@@ -1,35 +1,39 @@
%{"base64url": {:hex, :base64url, "0.0.1", "36a90125f5948e3afd7be97662a1504b934dd5dac78451ca6e9abf85a10286be", [:rebar], [], "hexpm"},
"bcrypt_elixir": {:hex, :bcrypt_elixir, "1.0.4", "7598efbe9bd56fdc04412b4377a6a3add0bcf8e0cf1f31684190425a404f14e2", [:make, :mix], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm"},
"comeonin": {:hex, :comeonin, "4.0.3", "4e257dcb748ed1ca2651b7ba24fdbd1bd24efd12482accf8079141e3fda23a10", [:mix], [{:argon2_elixir, "~> 1.2", [hex: :argon2_elixir, repo: "hexpm", optional: true]}, {:bcrypt_elixir, "~> 0.12.1 or ~> 1.0", [hex: :bcrypt_elixir, repo: "hexpm", optional: true]}, {:pbkdf2_elixir, "~> 0.12", [hex: :pbkdf2_elixir, repo: "hexpm", optional: true]}], "hexpm"},
"commanded": {:hex, :commanded, "0.15.1", "e324ce6e109e716ff03da23a682791f67a0f8d73da64e79d4b03d77eff9faa0c", [:mix], [{:poison, "~> 3.1", [hex: :poison, repo: "hexpm", optional: false]}, {:uuid, "~> 1.1", [hex: :uuid, repo: "hexpm", optional: false]}], "hexpm"},
%{
"base64url": {:hex, :base64url, "0.0.1", "36a90125f5948e3afd7be97662a1504b934dd5dac78451ca6e9abf85a10286be", [:rebar], [], "hexpm"},
"bcrypt_elixir": {:hex, :bcrypt_elixir, "1.0.6", "58a865939b3106d5ad4841f660955b958be6db955dda034fbbc1069dbacb97fa", [:make, :mix], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm"},
"comeonin": {:hex, :comeonin, "4.1.1", "c7304fc29b45b897b34142a91122bc72757bc0c295e9e824999d5179ffc08416", [:mix], [{:argon2_elixir, "~> 1.2", [hex: :argon2_elixir, repo: "hexpm", optional: true]}, {:bcrypt_elixir, "~> 0.12.1 or ~> 1.0", [hex: :bcrypt_elixir, repo: "hexpm", optional: true]}, {:pbkdf2_elixir, "~> 0.12", [hex: :pbkdf2_elixir, repo: "hexpm", optional: true]}], "hexpm"},
"commanded": {:hex, :commanded, "0.16.0", "10ab39952faf4af8bc0b077cce870f343e5e695b1e8cced4f425db66f651b048", [:mix], [{:phoenix_pubsub, "~> 1.0", [hex: :phoenix_pubsub, repo: "hexpm", optional: true]}, {:poison, "~> 3.1", [hex: :poison, repo: "hexpm", optional: false]}, {:uuid, "~> 1.1", [hex: :uuid, repo: "hexpm", optional: false]}], "hexpm"},
"commanded_ecto_projections": {:hex, :commanded_ecto_projections, "0.6.0", "004b7ed525ab8a04a71bf3dfb3baf070cdfaae6ab945b3d002ceae0fb978dd4d", [:mix], [{:commanded, ">= 0.12.0", [hex: :commanded, repo: "hexpm", optional: false]}, {:ecto, "~> 2.1", [hex: :ecto, repo: "hexpm", optional: false]}], "hexpm"},
"commanded_eventstore_adapter": {:hex, :commanded_eventstore_adapter, "0.3.0", "bd8ea1ae6d62edc74a97047ff05f46b9d460246261b2d890612dcfed2280b1f8", [:mix], [{:commanded, ">= 0.15.0", [hex: :commanded, repo: "hexpm", optional: false]}, {:eventstore, ">= 0.13.0", [hex: :eventstore, repo: "hexpm", optional: false]}], "hexpm"},
"commanded_eventstore_adapter": {:hex, :commanded_eventstore_adapter, "0.4.0", "60a2022f7268f43db2516d371fa6abe0bb090107b1630c47b49b87b2574ebde3", [:mix], [{:commanded, ">= 0.16.0", [hex: :commanded, repo: "hexpm", optional: false]}, {:eventstore, ">= 0.14.0", [hex: :eventstore, repo: "hexpm", optional: false]}], "hexpm"},
"connection": {:hex, :connection, "1.0.4", "a1cae72211f0eef17705aaededacac3eb30e6625b04a6117c1b2db6ace7d5976", [:mix], [], "hexpm"},
"cors_plug": {:hex, :cors_plug, "1.4.0", "c1c4fb68adf2fd1b4caccee978663edd58f62881627ab65b52ff56146945687f", [:mix], [{:plug, "> 0.14.0", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm"},
"cors_plug": {:hex, :cors_plug, "1.5.2", "72df63c87e4f94112f458ce9d25800900cc88608c1078f0e4faddf20933eda6e", [:mix], [{:plug, "~> 1.3 or ~> 1.4 or ~> 1.5", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm"},
"cowboy": {:hex, :cowboy, "1.1.2", "61ac29ea970389a88eca5a65601460162d370a70018afe6f949a29dca91f3bb0", [:rebar3], [{:cowlib, "~> 1.0.2", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, "~> 1.3.2", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm"},
"cowlib": {:hex, :cowlib, "1.0.2", "9d769a1d062c9c3ac753096f868ca121e2730b9a377de23dec0f7e08b1df84ee", [:make], [], "hexpm"},
"db_connection": {:hex, :db_connection, "1.1.2", "2865c2a4bae0714e2213a0ce60a1b12d76a6efba0c51fbda59c9ab8d1accc7a8", [:mix], [{:connection, "~> 1.0.2", [hex: :connection, repo: "hexpm", optional: false]}, {:poolboy, "~> 1.5", [hex: :poolboy, repo: "hexpm", optional: true]}, {:sbroker, "~> 1.0", [hex: :sbroker, repo: "hexpm", optional: true]}], "hexpm"},
"decimal": {:hex, :decimal, "1.4.1", "ad9e501edf7322f122f7fc151cce7c2a0c9ada96f2b0155b8a09a795c2029770", [:mix], [], "hexpm"},
"ecto": {:hex, :ecto, "2.2.6", "3fd1067661d6d64851a0d4db9acd9e884c00d2d1aa41cc09da687226cf894661", [:mix], [{:db_connection, "~> 1.1", [hex: :db_connection, repo: "hexpm", optional: true]}, {:decimal, "~> 1.2", [hex: :decimal, repo: "hexpm", optional: false]}, {:mariaex, "~> 0.8.0", [hex: :mariaex, repo: "hexpm", optional: true]}, {:poison, "~> 2.2 or ~> 3.0", [hex: :poison, repo: "hexpm", optional: true]}, {:poolboy, "~> 1.5", [hex: :poolboy, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.13.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:sbroker, "~> 1.0", [hex: :sbroker, repo: "hexpm", optional: true]}], "hexpm"},
"elixir_make": {:hex, :elixir_make, "0.4.0", "992f38fabe705bb45821a728f20914c554b276838433349d4f2341f7a687cddf", [:mix], [], "hexpm"},
"eventstore": {:hex, :eventstore, "0.13.2", "45e5492d1965a4ec6744eb29d29f2871be27cd8fe32de8747dd85d8c8e311629", [:mix], [{:fsm, "~> 0.3", [hex: :fsm, repo: "hexpm", optional: false]}, {:poison, "~> 3.1", [hex: :poison, repo: "hexpm", optional: true]}, {:poolboy, "~> 1.5", [hex: :poolboy, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.13", [hex: :postgrex, repo: "hexpm", optional: false]}, {:swarm, "~> 3.0", [hex: :swarm, repo: "hexpm", optional: true]}, {:uuid, "~> 1.1", [hex: :uuid, repo: "hexpm", optional: false]}], "hexpm"},
"ex_machina": {:hex, :ex_machina, "2.1.0", "4874dc9c78e7cf2d429f24dc3c4005674d4e4da6a08be961ffccc08fb528e28b", [:mix], [{:ecto, "~> 2.1", [hex: :ecto, repo: "hexpm", optional: true]}], "hexpm"},
"db_connection": {:hex, :db_connection, "1.1.3", "89b30ca1ef0a3b469b1c779579590688561d586694a3ce8792985d4d7e575a61", [:mix], [{:connection, "~> 1.0.2", [hex: :connection, repo: "hexpm", optional: false]}, {:poolboy, "~> 1.5", [hex: :poolboy, repo: "hexpm", optional: true]}, {:sbroker, "~> 1.0", [hex: :sbroker, repo: "hexpm", optional: true]}], "hexpm"},
"decimal": {:hex, :decimal, "1.5.0", "b0433a36d0e2430e3d50291b1c65f53c37d56f83665b43d79963684865beab68", [:mix], [], "hexpm"},
"ecto": {:hex, :ecto, "2.2.10", "e7366dc82f48f8dd78fcbf3ab50985ceeb11cb3dc93435147c6e13f2cda0992e", [:mix], [{:db_connection, "~> 1.1", [hex: :db_connection, repo: "hexpm", optional: true]}, {:decimal, "~> 1.2", [hex: :decimal, repo: "hexpm", optional: false]}, {:mariaex, "~> 0.8.0", [hex: :mariaex, repo: "hexpm", optional: true]}, {:poison, "~> 2.2 or ~> 3.0", [hex: :poison, repo: "hexpm", optional: true]}, {:poolboy, "~> 1.5", [hex: :poolboy, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.13.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:sbroker, "~> 1.0", [hex: :sbroker, repo: "hexpm", optional: true]}], "hexpm"},
"elixir_make": {:hex, :elixir_make, "0.4.1", "6628b86053190a80b9072382bb9756a6c78624f208ec0ff22cb94c8977d80060", [:mix], [], "hexpm"},
"eventstore": {:hex, :eventstore, "0.14.0", "11ad4c888b9e5d635d789f39eca16d86185a1f463ad0eb66754f17b37b88ee9d", [:mix], [{:fsm, "~> 0.3", [hex: :fsm, repo: "hexpm", optional: false]}, {:gen_stage, "~> 0.13", [hex: :gen_stage, repo: "hexpm", optional: false]}, {:poison, "~> 2.2 or ~> 3.0", [hex: :poison, repo: "hexpm", optional: true]}, {:poolboy, "~> 1.5", [hex: :poolboy, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.13", [hex: :postgrex, repo: "hexpm", optional: false]}, {:uuid, "~> 1.1", [hex: :uuid, repo: "hexpm", optional: false]}], "hexpm"},
"ex_machina": {:hex, :ex_machina, "2.2.0", "fec496331e04fc2db2a1a24fe317c12c0c4a50d2beb8ebb3531ed1f0d84be0ed", [:mix], [{:ecto, "~> 2.1", [hex: :ecto, repo: "hexpm", optional: true]}], "hexpm"},
"exconstructor": {:hex, :exconstructor, "1.1.0", "272623a7b203cb2901c20cbb92c5c3ab103cc0087ff7c881979e046043346752", [:mix], [], "hexpm"},
"file_system": {:hex, :file_system, "0.2.4", "f0bdda195c0e46e987333e986452ec523aed21d784189144f647c43eaf307064", [:mix], [], "hexpm"},
"fs": {:hex, :fs, "0.9.2", "ed17036c26c3f70ac49781ed9220a50c36775c6ca2cf8182d123b6566e49ec59", [:rebar], [], "hexpm"},
"fsm": {:hex, :fsm, "0.3.0", "d00e0a3c68f8cf8feb24ce3a732164638ec652c48ce416b66d4e375b6ee415eb", [:mix], [], "hexpm"},
"gettext": {:hex, :gettext, "0.13.1", "5e0daf4e7636d771c4c71ad5f3f53ba09a9ae5c250e1ab9c42ba9edccc476263", [:mix], [], "hexpm"},
"gen_stage": {:hex, :gen_stage, "0.13.1", "edff5bca9cab22c5d03a834062515e6a1aeeb7665fb44eddae086252e39c4378", [:mix], [], "hexpm"},
"gettext": {:hex, :gettext, "0.15.0", "40a2b8ce33a80ced7727e36768499fc9286881c43ebafccae6bab731e2b2b8ce", [:mix], [], "hexpm"},
"guardian": {:hex, :guardian, "0.14.5", "6d4e89b673accdacbc092ad000dc7494019426bd898eebf699caf1d19000cdcd", [:mix], [{:jose, "~> 1.8", [hex: :jose, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.2 and < 1.4.0", [hex: :phoenix, repo: "hexpm", optional: true]}, {:plug, "~> 1.3", [hex: :plug, repo: "hexpm", optional: false]}, {:poison, ">= 1.3.0 and < 4.0.0", [hex: :poison, repo: "hexpm", optional: false]}, {:uuid, ">=1.1.1", [hex: :uuid, repo: "hexpm", optional: false]}], "hexpm"},
"jose": {:hex, :jose, "1.8.4", "7946d1e5c03a76ac9ef42a6e6a20001d35987afd68c2107bcd8f01a84e75aa73", [:mix, :rebar3], [{:base64url, "~> 0.0.1", [hex: :base64url, repo: "hexpm", optional: false]}], "hexpm"},
"mime": {:hex, :mime, "1.1.0", "01c1d6f4083d8aa5c7b8c246ade95139620ef8effb009edde934e0ec3b28090a", [:mix], [], "hexpm"},
"mix_test_watch": {:hex, :mix_test_watch, "0.5.0", "2c322d119a4795c3431380fca2bca5afa4dc07324bd3c0b9f6b2efbdd99f5ed3", [:mix], [{:fs, "~> 0.9.1", [hex: :fs, repo: "hexpm", optional: false]}], "hexpm"},
"phoenix": {:hex, :phoenix, "1.3.0", "1c01124caa1b4a7af46f2050ff11b267baa3edb441b45dbf243e979cd4c5891b", [:mix], [{:cowboy, "~> 1.0", [hex: :cowboy, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 1.0", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:plug, "~> 1.3.3 or ~> 1.4", [hex: :plug, repo: "hexpm", optional: false]}, {:poison, "~> 2.2 or ~> 3.0", [hex: :poison, repo: "hexpm", optional: false]}], "hexpm"},
"mime": {:hex, :mime, "1.2.0", "78adaa84832b3680de06f88f0997e3ead3b451a440d183d688085be2d709b534", [:mix], [], "hexpm"},
"mix_test_watch": {:hex, :mix_test_watch, "0.6.0", "5e206ed04860555a455de2983937efd3ce79f42bd8536fc6b900cc286f5bb830", [:mix], [{:file_system, "~> 0.2.1 or ~> 0.3", [hex: :file_system, repo: "hexpm", optional: false]}], "hexpm"},
"phoenix": {:hex, :phoenix, "1.3.2", "2a00d751f51670ea6bc3f2ba4e6eb27ecb8a2c71e7978d9cd3e5de5ccf7378bd", [:mix], [{:cowboy, "~> 1.0", [hex: :cowboy, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 1.0", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:plug, "~> 1.3.3 or ~> 1.4", [hex: :plug, repo: "hexpm", optional: false]}, {:poison, "~> 2.2 or ~> 3.0", [hex: :poison, repo: "hexpm", optional: false]}], "hexpm"},
"phoenix_ecto": {:hex, :phoenix_ecto, "3.3.0", "702f6e164512853d29f9d20763493f2b3bcfcb44f118af2bc37bb95d0801b480", [:mix], [{:ecto, "~> 2.1", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.9", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm"},
"phoenix_pubsub": {:hex, :phoenix_pubsub, "1.0.2", "bfa7fd52788b5eaa09cb51ff9fcad1d9edfeb68251add458523f839392f034c1", [:mix], [], "hexpm"},
"plug": {:hex, :plug, "1.4.3", "236d77ce7bf3e3a2668dc0d32a9b6f1f9b1f05361019946aae49874904be4aed", [:mix], [{:cowboy, "~> 1.0.1 or ~> 1.1", [hex: :cowboy, repo: "hexpm", optional: true]}, {:mime, "~> 1.0", [hex: :mime, repo: "hexpm", optional: false]}], "hexpm"},
"plug": {:hex, :plug, "1.5.0", "224b25b4039bedc1eac149fb52ed456770b9678bbf0349cdd810460e1e09195b", [:mix], [{:cowboy, "~> 1.0.1 or ~> 1.1 or ~> 2.1", [hex: :cowboy, repo: "hexpm", optional: true]}, {:mime, "~> 1.0", [hex: :mime, repo: "hexpm", optional: false]}], "hexpm"},
"poison": {:hex, :poison, "3.1.0", "d9eb636610e096f86f25d9a46f35a9facac35609a7591b3be3326e99a0484665", [:mix], [], "hexpm"},
"poolboy": {:hex, :poolboy, "1.5.1", "6b46163901cfd0a1b43d692657ed9d7e599853b3b21b95ae5ae0a777cf9b6ca8", [:rebar], [], "hexpm"},
"postgrex": {:hex, :postgrex, "0.13.3", "c277cfb2a9c5034d445a722494c13359e361d344ef6f25d604c2353185682bfc", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 1.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm"},
"postgrex": {:hex, :postgrex, "0.13.5", "3d931aba29363e1443da167a4b12f06dcd171103c424de15e5f3fc2ba3e6d9c5", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 1.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm"},
"ranch": {:hex, :ranch, "1.3.2", "e4965a144dc9fbe70e5c077c65e73c57165416a901bd02ea899cfd95aa890986", [:rebar3], [], "hexpm"},
"slugger": {:hex, :slugger, "0.2.0", "7c609e6eee6dbb44e7b0db07982932356cab476f00fc8d73320cdc50d7efa18e", [:mix], [], "hexpm"},
"uuid": {:hex, :uuid, "1.1.8", "e22fc04499de0de3ed1116b770c7737779f226ceefa0badb3592e64d5cfb4eb9", [:mix], [], "hexpm"},
"vex": {:hex, :vex, "0.6.0", "4e79b396b2ec18cd909eed0450b19108d9631842598d46552dc05031100b7a56", [:mix], [], "hexpm"}}
"vex": {:hex, :vex, "0.6.0", "4e79b396b2ec18cd909eed0450b19108d9631842598d46552dc05031100b7a56", [:mix], [], "hexpm"},
}
3 changes: 2 additions & 1 deletion test/support/storage.ex
Expand Up @@ -17,8 +17,9 @@ defmodule Conduit.Storage do
{:ok, conn} =
EventStore.configuration()
|> EventStore.Config.parse()
|> EventStore.Config.default_postgrex_opts()
|> Postgrex.start_link()

EventStore.Storage.Initializer.reset!(conn)
end

Expand Down

5 comments on commit 7c958a8

@BarbaricCorgi
Copy link
Contributor

@BarbaricCorgi BarbaricCorgi commented on 7c958a8 May 15, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm having errors when running 'mix test' in this commit.

This is what I'm doing:

  • cloning this repo
  • setting up the test DBs with:
  • MIX_ENV=test mix event_store.create
  • MIX_ENV=test mix event_store.init
  • MIX_ENV=test mix ecto.create
  • MIX_ENV=test mix ecto.migrate
  • mix test

I'm getting:

Finished in 40.0 seconds
65 tests, 23 failures

  1. test list articles should limit articles (Conduit.BlogTest)
    test/conduit/blog/blog_test.exs:48
    ** (ArgumentError) repo Conduit.Repo is not started, please ensure it is part of your supervision tree
    stacktrace:
    (ecto) lib/ecto/query/planner.ex:148: Ecto.Query.Planner.query_lookup/6
    (ecto) lib/ecto/query/planner.ex:131: Ecto.Query.Planner.query_with_cache/7
    (ecto) lib/ecto/repo/queryable.ex:124: Ecto.Repo.Queryable.execute/5
    (ecto) lib/ecto/repo/queryable.ex:37: Ecto.Repo.Queryable.all/4
    (ecto) lib/ecto/repo/queryable.ex:70: Ecto.Repo.Queryable.one/4
    (conduit) lib/conduit/blog/validators/unique_article_slug.ex:14: Conduit.Blog.Validators.UniqueArticleSlug.article_exists?/1
    (conduit) lib/conduit/blog/validators/unique_article_slug.ex:8: anonymous fn/1 in Conduit.Blog.Validators.UniqueArticleSlug.validate/2
    (vex) lib/vex/validators/by.ex:70: Vex.Validators.By.validate/3
    (vex) lib/vex.ex:48: Vex.result/4
    (elixir) lib/enum.ex:1294: Enum."-map/2-lists^map/1-0-"/2
    (elixir) lib/enum.ex:1294: Enum."-map/2-lists^map/1-0-"/2
    (elixir) lib/enum.ex:1298: anonymous fn/3 in Enum.map/2
    (stdlib) lists.erl:1263: :lists.foldl/3
    (elixir) lib/enum.ex:1915: Enum.map/2
    (vex) lib/vex.ex:31: Vex.results/2
    (vex) lib/vex.ex:24: Vex.errors/2
    (vex) lib/vex.ex:7: Vex.valid?/2
    (conduit) lib/conduit/support/middleware/validate.ex:8: Conduit.Support.Middleware.Validate.before_dispatch/1
    (commanded) lib/commanded/middleware/pipeline.ex:109: Commanded.Middleware.Pipeline.chain/3
    (commanded) lib/commanded/commands/dispatcher.ex:45: Commanded.Commands.Dispatcher.dispatch/1

    The following output was logged:
    23:28:55.110 [error] GenServer {Commanded.Registration.LocalRegistry, {Commanded.Event.Handler, "Blog.Projectors.Tag"}} terminating
    ** (Postgrex.Error) ERROR 42601 (syntax_error): syntax error at or near "ON"
    (ecto) lib/ecto/adapters/sql.ex:554: Ecto.Adapters.SQL.struct/8
    (ecto) lib/ecto/repo/schema.ex:547: Ecto.Repo.Schema.apply/4
    (ecto) lib/ecto/repo/schema.ex:213: anonymous fn/14 in Ecto.Repo.Schema.do_insert/4
    (ecto) lib/ecto/multi.ex:421: Ecto.Multi.apply_operation/5
    (elixir) lib/enum.ex:1899: Enum."-reduce/3-lists^foldl/2-0-"/3
    (ecto) lib/ecto/multi.ex:411: anonymous fn/5 in Ecto.Multi.apply_operations/5
    (ecto) lib/ecto/adapters/sql.ex:576: anonymous fn/3 in Ecto.Adapters.SQL.do_transaction/3
    (db_connection) lib/db_connection.ex:1283: DBConnection.transaction_run/4
    (db_connection) lib/db_connection.ex:1207: DBConnection.run_begin/3
    (db_connection) lib/db_connection.ex:798: DBConnection.transaction/3
    (ecto) lib/ecto/repo/queryable.ex:23: Ecto.Repo.Queryable.transaction/4
    (conduit) lib/projections/ecto.ex:74: Conduit.Blog.Projectors.Tag.update_projection/3
    (commanded) lib/commanded/event/handler.ex:435: Commanded.Event.Handler.handle_event/3
    (elixir) lib/enum.ex:1899: Enum."-reduce/3-lists^foldl/2-0-"/3
    (commanded) lib/commanded/registration/registration.ex:401: Commanded.Event.Handler.handle_info/2
    (stdlib) gen_server.erl:616: :gen_server.try_dispatch/4
    (stdlib) gen_server.erl:686: :gen_server.handle_msg/6
    (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
    Last message: {:events, [%Commanded.EventStore.RecordedEvent{causation_id: "59a50f9f-904f-4049-936d-784d1b2dc38d", correlation_id: "8f4f89c0-4b70-4c59-b003-708a3a08f49f", created_at: ~N[2018-05-15 03:28:55.052664], data: %Conduit.Blog.Events.ArticlePublished{article_uuid: "bf99becc-eb7a-4a98-b91a-768c35172d70", author_uuid: "927c390f-e949-46fc-aac9-437abb1d542d", body: "You have to believe", description: "Ever wonder how?", slug: "how-to-train-your-dragon", tag_list: ["dragons", "training", "believe"], title: "How to train your dragon"}, event_id: "8004cdb5-d30a-4712-9607-0e8d969a20bf", event_number: 2, event_type: "Elixir.Conduit.Blog.Events.ArticlePublished", metadata: %{}, stream_id: "article-bf99becc-eb7a-4a98-b91a-768c35172d70", stream_version: 1}]}
    23:28:55.111 [error] GenServer {Commanded.Registration.LocalRegistry, {Commanded.Event.Handler, "Blog.Projectors.Tag"}} terminating
    ** (Postgrex.Error) ERROR 42601 (syntax_error): syntax error at or near "ON"
    (ecto) lib/ecto/adapters/sql.ex:554: Ecto.Adapters.SQL.struct/8
    (ecto) lib/ecto/repo/schema.ex:547: Ecto.Repo.Schema.apply/4
    (ecto) lib/ecto/repo/schema.ex:213: anonymous fn/14 in Ecto.Repo.Schema.do_insert/4
    (ecto) lib/ecto/multi.ex:421: Ecto.Multi.apply_operation/5
    (elixir) lib/enum.ex:1899: Enum."-reduce/3-lists^foldl/2-0-"/3
    (ecto) lib/ecto/multi.ex:411: anonymous fn/5 in Ecto.Multi.apply_operations/5
    (ecto) lib/ecto/adapters/sql.ex:576: anonymous fn/3 in Ecto.Adapters.SQL.do_transaction/3
    (db_connection) lib/db_connection.ex:1283: DBConnection.transaction_run/4
    (db_connection) lib/db_connection.ex:1207: DBConnection.run_begin/3
    (db_connection) lib/db_connection.ex:798: DBConnection.transaction/3
    (ecto) lib/ecto/repo/queryable.ex:23: Ecto.Repo.Queryable.transaction/4
    (conduit) lib/projections/ecto.ex:74: Conduit.Blog.Projectors.Tag.update_projection/3
    (commanded) lib/commanded/event/handler.ex:435: Commanded.Event.Handler.handle_event/3
    (elixir) lib/enum.ex:1899: Enum."-reduce/3-lists^foldl/2-0-"/3
    (commanded) lib/commanded/registration/registration.ex:401: Commanded.Event.Handler.handle_info/2
    (stdlib) gen_server.erl:616: :gen_server.try_dispatch/4
    (stdlib) gen_server.erl:686: :gen_server.handle_msg/6
    (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
    Last message: {:events, [%Commanded.EventStore.RecordedEvent{causation_id: "59a50f9f-904f-4049-936d-784d1b2dc38d", correlation_id: "8f4f89c0-4b70-4c59-b003-708a3a08f49f", created_at: ~N[2018-05-15 03:28:55.052664], data: %Conduit.Blog.Events.ArticlePublished{article_uuid: "bf99becc-eb7a-4a98-b91a-768c35172d70", author_uuid: "927c390f-e949-46fc-aac9-437abb1d542d", body: "You have to believe", description: "Ever wonder how?", slug: "how-to-train-your-dragon", tag_list: ["dragons", "training", "believe"], title: "How to train your dragon"}, event_id: "8004cdb5-d30a-4712-9607-0e8d969a20bf", event_number: 2, event_type: "Elixir.Conduit.Blog.Events.ArticlePublished", metadata: %{}, stream_id: "article-bf99becc-eb7a-4a98-b91a-768c35172d70", stream_version: 1}]}

@BarbaricCorgi
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if maybe we broke the project here somehow:

(conduit) lib/projections/ecto.ex:74: Conduit.Blog.Projectors.Tag.update_projection/3

@BarbaricCorgi
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

further investigation shows this on the postgres log:

ERROR: syntax error at or near "ON" at character 89
STATEMENT: INSERT INTO "blog_tags" ("name","inserted_at","updated_at","uuid") VALUES ($1,$2,$3,$4) ON CONFLICT ("name") DO NOTHING

LOG: duration: 0.008 ms bind POSTGREX_ROLLBACK: ROLLBACK

@BarbaricCorgi
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, I found the solution. I'm ashamed to say this project depends on postgres 9.5 and superior and I haven't realized.

I'm just letting this comments here so they can help another clumsy dev as myself. :)

Thanks slashdotdash for this awesome project. all tests running now.

@slashdotdash
Copy link
Owner Author

@slashdotdash slashdotdash commented on 7c958a8 May 15, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@BarbaricCorgi Glad you were able to eventually track down the root cause.

Please sign in to comment.