AshStorage is an Ash extension that provides a push-button solution for soft deleting records, instead of destroying them.
This project uses Docker to run PostgreSQL and MinIO for testing. You can use the provided Mix tasks to manage the Docker containers:
# Start all containers (PostgreSQL, MinIO)
mix docker.start
# Create and migrate the test database
MIX_ENV=test mix test.create
MIX_ENV=test mix test.migrate
# Run tests with the standard Mix test command
mix test
# Run a specific test file
mix test test/storage_test.exs
# Stop all containers when done
mix docker.stopThe docker.start task starts all containers and waits for them to be ready. It automatically extracts connection details (usernames, passwords, ports) from your docker-compose.yml file. You'll need to create and migrate the database separately before running tests.
MinIO is included to support testing S3 storage adapters. It provides an S3-compatible API at http://localhost:9000 and a web console at http://localhost:9001 (default credentials: minioadmin/minioadmin).
These Mix tasks can be used in any environment. For example, you could use them in development:
mix docker.start
# Set up your development database
mix ecto.create
mix ecto.migrate
# Run your application
mix phx.server # If you're using PhoenixMake sure you have Docker and Docker Compose installed on your system.

