_toni
Hello,
When one is within the Mix context it’s possible to run
$ mix run priv/repo/seeds.exs
Which will evaluate code like the following into the DB:
#/priv/repo/seeds.exs ---> copied to _build/rel/appname/prod/seeds.exs once release is built
defmodule Seeder do
def start_items do
%Item{}
|> Item.changeset(%{name: Faker.Commerce.product_name()})
|> Repo.insert!()
do
end
Seeder.start_items()
I would like to also run the same script in production from a mix release binary à la
./bin/appname eval "Appname.Release.migrate"
What is the recommended way? I already copied the seeds.exs to overlays so they are located in here
_build/rel/appname/prod/seeds.exs
Thank you!
Trending in Questions
I’m working on a project that simulates the bumbl example in the programming phoenix book. It acts almost like an email client. We have a...
New
Hello,
I know there is an approach for handling lists that allows for optimized traversal, but I can’t recall the specific method (somet...
New
I’m seeing that a list inside a Kino.DataTable will be interpreted as a charlist, even if the Kino.configure() is set to charlists: :as_l...
New
Documentation
While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
So my question is quite simple and i have found no conclusive answer on forum, google or AI.
Should we use :erlang.float for Integer to ...
New
Hi, I’ve just set up an application with ash_authentication. There is only magic link strategy for now, so there is no confirmation add o...
New
If a change or preparation module uses Ash.Changeset.get_argument/2 or Ash.Query.get_argument/2 (or any of the other get_argument functio...
New
Other Trending Topics
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
Hi there! We created Gust: A task orchestrator inspired by Airflow.
For those who have never heard about Aiflow, it’s a Python-based wor...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
With AI doing more of the implementation work, I’ve been wondering how much coding I should deliberately keep doing myself.
My main conc...
New
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
- #ai
- #blog-post
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #hex
- #security
- #metaprogramming











Showing Posts 1 to 10- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
polypush135
/some_release/bin/prod eval "MyApp.Seeder.start_items"_toni
Oh, so you suggest to have the Seeder module out of
rel/overlays/seeds.exsand instead make it into a module inside/lib/appname/seeder.ex, that sounds like a different approach but a good idea neverthelesspolypush135
Much like the example in the docs for releases and migrations, I would just follow that pattern.
I mean it could even just go in the Appname.Release module
And just for the record I’m talking about Invoking
priv/repo/seeds.exsfrom that location. Not defining the seeds.exs in there_toni
Following Deploying with Releases — Phoenix v1.8.8 for migrations I got stuck when it comes to the seeds due to the fact that they by consensus live in a script
.exswhich I assumed requires themixtool to themix runex.Ah cool. Even better
Can you briefly annotate how that invoking would look like, I did find its full path via
priv_dir(:appname)function but didn’t figure out how to run the script itself.polypush135
Good question, I’ve never tried to load a exs from inside elixir before. I"m sure it’s simple to do.
dbell
Code.eval_file/1will execute an EXS file. That is how I am running migrations via amixrelease.mudasobwa
What’s wrong with
Ecto.Migrator.up/4?polypush135
Its for running the seeds.exs
Edit: oh yeah for the migration. Meh to each their own.
mudasobwa
To seed one might pack seeds into a migration and run a migration. There is no
mixby default on target release. Of course, another way [not recommended] would be to includemixapp in the release.webuhu
I currently use the following in one of my projects:
And then for the release:
bin/my_app eval 'MyApp.Release.Seeder.seed(Elixir.MyApp.Repo, "seed.exs")PS: You probably need to add to your
config.exs