Avoiding migration problems with plugins using acts-as-taggable-on
Say you want to install two Redmine plugins which both use the
acts-as-taggable-on gem. Unfortunately, they will both try to create the same two tables in the database: "tags", and "taggings".
Plugin developers can use a number of workarounds:
- Ask users to do
rails g acts_as_taggable_on:migration && rake db:migrate-- but then, doing
rake redmine:plugins:migrate NAME=foo VERSION=0won't drop the tables when they uninstall it.
rails g acts_as_taggable_on:migrationduring development and check the resultant file in -- but then, uninstalling the plugin when other plugins are still using those tables will delete their data!
I don't like compromises, so I've come up with a better solution. It's at https://github.com/hdgarrood/redmine_acts_as_taggable_on (there's a more detailed introduction over there), and it's super easy to set up.
It will work best if as many plugins as possible use it. So, Redmine plugin developers, I implore you: Please update your plugins to use this gem!