One thing I've noticed (and this is a Drupal thing, not an Ubercart thing):
If you've installed a module, then disable (but don't uninstall) the module, the module's tables remain in the DB. No problem so far...
But if you download a new version of that module and run update.php, the update_N() function for that disabled module is *not* executed, because the module is not enabled! This leaves you with an outdated set of DB tables for that disabled module. If you later enable that module, the code and the DB tables will be out of sync. This causes problems especially during development when you're constantly enabling/disabling modules and updating code.
Because the uc_flatrate_method table wasn't present in older versions of uc_flatrate, I'll bet your old install didn't have that table, and you also had uc_flatrate disabled when you did the update.php. As a result, the uc_flatrate_method table didn't get created by the update and you got errors when you later enabled the uc_flatrate module and tried to use it.
To avoid this problem, a workaround is to always run update.php after you enable a module.



Joined: 11/05/2007