During migration it does not appear possible to drop or add primary keys (for MySQL at least). The current list of schema statements in ActiveRecord::ConnectionAdapters::SchemaStatements includes remove_index and add_index, but they cannot currently be used to add or remove primary key status.
I have resolved this problem for MySQL by using MySQL specific statements:
ActiveRecord::Base.connection.insert('ALTER TABLE workspaces_discussions DROP PRIMARY KEY')
Clearly not ideal, but there is no other option at this point.
One other note is that when migration fails they should roll back the changes they made so far, otherwise you get stuck with a db in an intermediate state