zac
Has anyone set up their Ash Framework Postgres app deployment (and, most importantly, migration) on Fly.io?
I’m trying to figure out what I need to do for a safe deployment/migration.
From what I’ve deciphered on the Fly.io side, fly deploy will run MyApp.Release.migrate() during deployment… which appears to be a pretty generic Ecto template… installed prior to (or part of?) Ash setup (@zachdaniel just suspecting… shouldn’t this have been replaced with something Ash specific during config/gen?):
defmodule WasteWalk.Release do
@moduledoc """
Used for executing DB release tasks when run in production without Mix
installed.
"""
@app :waste_walk
def migrate do
load_app()
for repo <- repos() do
{:ok, _, _} = Ecto.Migrator.with_repo(repo, &Ecto.Migrator.run(&1, :up, all: true))
end
end
...
end
And looking through the deps for ash.migrate it appears to be… more complicated than that. ![]()
So… wondering if anyone has done this and could share a solution. Otherwise, I’m guessing I’ll need to change the above, but not at all clear on what exactly I should be calling – let alone, upgrading the corresponding rollback etc., etc., functions.
Trending in Questions
Other Trending Topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixirconf-us
- #blog-post
- #ai
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #hex
- #security
- #metaprogramming










Showing Posts 1 to 4- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
frankdugan3
There is a pretty detailed example in the AshPostgres docs.
Generally speaking, Ash leverages the existing Ecto migrations. The important difference is mainly around tenant migrations, which are run separately than the main migrations.
zac
Aha. Thanks… I missed that…
zac
Looking that over – am I right in concluding that for non-multitenant installs, it’s 100% the same as the generic Ecto migrator? (I mean, the
migrate()function certainly seems to say so).Which is splendid, since I’m not multi-tenant. Yet anyhow.
There’s a bit more behind the
repos()function but, that should end up returning exactly the same thing on a single tenant. So, it would seem until I go multi-tenant, the generic Ecto-based migrator above should be good.frankdugan3
Pretty much. The Ash mix tasks are much more important in development, because there are nifty dev migrations that you can generate while working on changing things up.