TL; DR Al jugar con Ecto, ¿dónde (en el código) debo cargar datos para completar previamente una tabla pequeña después de crearla?
Estoy aprendiendo Elixir, Phoenix y Ecto. Tengo una tabla en mi esquema para definir una lista de opciones configurables. Me gustaría completar previamente esta tabla con un conjunto mínimo de opciones cuando se crea la tabla.
Me parece que el script _create_table.exs es el lugar para hacerlo, ya que ahí es donde se crea la tabla. Estaba mirando un bloque de ejecución {} pero parece torpe.
¿Hay un lugar mejor en el código para completar previamente una nueva tabla?
En Phoenix , la forma común de llenar la base de datos es usar priv/repo/seeds.exs que genera con una tarea de mix run como:
mix run priv/repo/seeds.exs Pero este enfoque en realidad funciona bastante bien con cualquier proyecto de Ecto . Simplemente cree el archivo, coloque el código de inicialización allí y actualice su sección de aliases mix.exs como
defp aliases do [ "ecto.setup": [ "ecto.create", "ecto.migrate", "run priv/repo/seeds.exs" ], ... ] Ahora mix ecto.setup crearía, migraría y completaría la base de datos.