View Source Upgrading to v0.8
Bump your deps
Update Backpex to the latest version:
defp deps do
[
{:backpex, "~> 0.8.0"}
]
end
Introduction of the adapter pattern
Changed Backpex.LiveResource
configuration
With this version of Backpex we are starting to implement the adapter pattern for flexible data layers.
Going forward you need to move adapter-specific configuration to the adapter_config
options. Before:
use Backpex.LiveResource,
layout: {DemoWeb.Layouts, :admin},
schema: Demo.User,
repo: Demo.Repo,
update_changeset: &Demo.User.changeset/3,
create_changeset: &Demo.User.changeset/3,
pubsub: Demo.PubSub,
topic: "users",
event_prefix: "user_"
After:
use Backpex.LiveResource,
adapter: Backpex.Adapters.Ecto,
adapter_config: [
schema: Demo.User,
repo: Demo.Repo,
update_changeset: &Demo.User.changeset/3,
create_changeset: &Demo.User.changeset/3,
],
layout: {DemoWeb.Layouts, :admin},
pubsub: [
name: Demo.PubSub,
topic: "users",
event_prefix: "user_"
]
The adapter
key is optional and defaults to Backpex.Adapters.Ecto
. See Backpex.Adapter
for more information.
As you may have noticed in the above example, we also changed the pubsub configuration syntax.
You now have to provide a Keyword list with the name
, topic
and event_prefix
key (see below).
In addition, all options of the LiveResource and the corresponding adapters are now validated at compile time.
Changed Backpex.Resource
parameters
If you are not using this module directly in your code, you can safely ignore this section.
All functions in the Backpex.Resource
module previously expected adapter specific parameters like repo
and schema
.
This is now simplified to just the live_resource
. See Backpex.Resource
for the updated functions.
PubSub configuration syntax has changed
We have changed the syntax for configuring PubSub. You now have to provide a keyword list with the name
, topic
and
event_prefix
keys instead of separate options.
use Backpex.LiveResource,
...
pubsub: Demo.PubSub,
topic: "users",
event_prefix: "user_"
After:
use Backpex.LiveResource,
...
pubsub: [
name: Demo.PubSub,
topic: "users",
event_prefix: "user_"
]
Removed the ability to disable PubSub
We have stated in our documentation that you must configure PubSub in your LiveResource. However, you could set pubsub
to false
, which prevented PubSub events from being sent. We have removed this behavior and setting pubsub
to false
will result in an error.
This configuration is not possible anymore:
use Backpex.LiveResource,
...
pubsub: false
No anonymous functions in LiveResource configuration anymore
it is no longer possible to use an anonymous function in LiveResource configuration options.
If you had something like this:
use Backpex.LiveResource,
init_order: fn _assigns -> %{by: :username, direction: :asc} end
you have to change it to this:
use Backpex.LiveResource,
init_order: &__MODULE__.init_order/1
def init_order(_assigns) do
%{by: :username, direction: :asc}
end