resetear reiniciar quitar plus k540 k530f hard hacer gr3 google formatear fabrica cuenta como testing elixir phoenix-framework ecto

testing - reiniciar - ¿Cómo deshacer, restablecer o eliminar la base de datos de prueba Ecto?



formatear lg k540 (2)

Puede acceder a la base de datos de prueba utilizando MIX_ENV=test seguido de un comando como mix do ecto.drop , mix ecto.reset o mix ecto.rollback .

En este caso particular, usé MIX_ENV=test mix ecto.reset .

Si su aplicación tiene varios repositorios (DBs), querrá especificar un repositorio específico para evitar aplicar la operación a todos los repositorios. Por ejemplo

mix ecto.drop --repo Order.Repo

Para obtener más información sobre una tarea Ecto, use la mix help <task>

Por mix.test general, mix.test limpia la base de datos de prueba, pero no funciona.

Puede ser porque estaba jugando haciendo un esquema de users , pero no quería usar lo que hice, así que me deshice de él. Luego comencé de nuevo e hice un nuevo esquema para los usuarios que era diferente al primero.

Cuando intenté volver a ejecutar la prueba de mezcla, se produjo un error que indicaba que no existían algunos campos que deberían haber estado allí con el nuevo esquema.


Puedes establecer alias en mix.exs como este

defp aliases do [ "ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"], "ecto.reset": ["ecto.drop", "ecto.setup"], "test": ["ecto.create --quiet", "ecto.migrate", "test"] ] end

Y necesitas ejecutar la base de datos en modo sandbox.

Tu /appdir/test/test_helper.exs debería ser así

Ecto.Adapters.SQL.Sandbox.mode(ProjectName.DB.Repo, {:shared, self()}) ExUnit.start(exclude: [:pending])

Y /appdir/config/test.exs como este

config :project_name, ProjectName.DB.Repo, pool: Ecto.Adapters.SQL.Sandbox, database: "database_name_test"