Where do MageMail-specific database tables and columns get created?
There are a few places where MageMail modifies the Magento database schema:
- Creating temporary tables (kj_magemail_*)
- Adding indexes to tables like sales_flat_quote.updated_at
- Creating columns like newsletter_subscriber.magemail_created_at
These changes aren't made from within regular Magento database upgrade scripts for a few reasons. For one, database upgrade scripts can tend to cause breakage in production sites, and, secondly, because it gives greater flexibility to be able to create them over the API - database schema changes can be deployed without requiring a module update.
These changes are generally made by the MageMail team when onboarding your account via admin-only actions that are available from within the MageMail account.