This is mostly thinking based on MySQL, we'll have to change the MS SQL version accordingly.
Drop the following fields:
- #__content.title_alias It's been marked as deprecated since 1.6.0 (?).
Change the following tables to InnoDB:
- #__banners
- #__banner_clients
- #__categories
- #__contact_details
- #__content
- #__content_frontpage
- #__content_rating
- #__extensions
- #__finder_filters
- #__menu
- #__messages
- #__messages_cfg
- #__modules
- #__modules_menu
- #__newsfeeds
- #__session
- #__template_styles
- #__users
- #__user_profiles
- #__user_notes
- #__weblinks
Change the data type on the following fields:
- #__content_frontpage.content_id to integer unsigned. Needed for FK.
- #__content_rating.content_id to integer unsigned. Needed for FK.
- #__newsfeeds.checked_out to integer unsigned. Needed for FK.
- #__session.userid to integer unsigned. Needed for FK.
- #__users.id to integer unsigned (helpful for foreign keys but B/C issue if extensions already have FK on it) or to smallint unsigned (when we touch it anyways might as well save a byte of storage. However this requires changing many other fields as well)
- #__user_profiles.id to integer unsigned. Also for FK.
- #__weblinks.checked_out to integer unsigned. Also for FK.
Other changes: *Changed all checked_out fields from NOT NULL DEFAULT '0' to DEFAULT NULL. Without this changed FK won't be possible. Need to check what, if any, code changes would be required for this.
Add the following Foreign Keys: