Wouldn't all of these be extremely similar between functions? Couldn't we have a much more generic approach that just uses self, template files for the migrations, and combines the two without having similar code for each migration type?