To completely uninstall a plugin from a Redmine 7 Docker container (running on macOS), you need to reverse its database migrations, remove its files from the plugin directory, and restart the container.
Follow this step-by-step guide:
- Step 1: Back up your database
- Step 2: Open your macOS terminal
- Step 3: Roll back the plugin's database migrations (if applicable)
- Step 4: Remove the plugin files
- Step 5: Restart the Redmine container
- Step 6: Verify
Step 1: Back up your database
Uninstalling database-backed plugins can drop tables or columns associated with that plugin. Always create a backup first. If you use a containerized database or a volume dump, secure a copy before proceeding.
Step 2: Open your macOS terminal
Open your terminal application and navigate to the directory on your Mac where your Docker Compose file (docker-compose.yml) or Redmine container environment is managed.
Step 3: Roll back the plugin's database migrations (if applicable)
If the plugin created database tables or columns during installation, you should revert them. Run the migration downgrade command inside your running Redmine container:
docker exec -it <redmine_container_name_or_id> bundle exec rake redmine:plugins:migrate NAME=plugin_folder_name VERSION=0 RAILS_ENV=production
: Replace this with your actual Redmine container name (you can check it using docker ps). - plugin_folder_name: This is the exact name of the plugin's folder inside the plugins directory (e.g., redmine_checklists, redmine_contacts_helpdesk), not its display name.
Note: If the plugin didn't use any database migrations, this command might return a notice or do nothing, which is completely fine - you can proceed to the next step.
Step 4: Remove the plugin files
How you remove the files depends on how you mounted your plugins directory:
- If you use a Docker Volume or Bind Mount (Recommended setup): If your host machine maps a local folder to /usr/src/redmine/plugins in the container, simply open that local folder on your Mac and delete the plugin's folder entirely.
- If the plugin is baked directly into the container image: You will need to modify your Dockerfile to remove the plugin copy step, or manually delete it from inside the container using:
docker exec -it <redmine_container_name_or_id> rm -rf /usr/src/redmine/plugins/plugin_folder_name
Step 5: Restart the Redmine container
To clear out cached code, routes, and hooks, restart your Docker container:
If using Docker Compose:
docker compose restart redmine
Or docker-compose restart redmine depending on your Docker version.
If using plain Docker:
docker restart <redmine_container_name_or_id>
Step 6: Verify
Log into your Redmine instance as an administrator, navigate to Administration > Plugins, and confirm that the plugin no longer appears in the list.