Joined: Apr 06, 2006 Posts: 2401 Location: Iowa, USA
Posted:
Sat Mar 17, 2007 11:53 am
Here is a cleaned up version of my script that I used to convert 7.9 to RN2.10. It is posted here without warranty or any support. Your database tables may be different due to 3rd party add-ons, so your mileage may vary. This script was generated from the mysqldiff tool, and then hand edited in a few places to remove some errors.
ALTER TABLE nuke_authors
DROP INDEX aid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_autonews
MODIFY aid varchar(25) NOT NULL DEFAULT '' COMMENT '' COLLATE latin1_general_ci,
MODIFY informant varchar(25) NOT NULL DEFAULT '' COMMENT '' COLLATE latin1_general_ci,
DROP INDEX anid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
#
# Fieldformats of
# nuke_autonews.aid changed from varchar(30) NOT NULL DEFAULT '' COMMENT '' COLLATE latin1_swedish_ci to varchar(25) NOT NULL DEFAULT '' COMMENT '' COLLATE latin1_general_ci.
# nuke_autonews.informant changed from varchar(20) NOT NULL DEFAULT '' COMMENT '' COLLATE latin1_swedish_ci to varchar(25) NOT NULL DEFAULT '' COMMENT '' COLLATE latin1_general_ci.
# Possibly data modifications needed!
#
ALTER TABLE nuke_banned_ip
DROP INDEX id, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_banner
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_banner_clients
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_banner_plans
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_banner_positions
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_banner_terms
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbauth_access
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbbanlist
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbcategories
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbconfig
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbdisallow
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbforum_prune
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbforums
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbgroups
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbposts
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbposts_text
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbprivmsgs
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbprivmsgs_text
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbranks
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbsearch_results
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbsearch_wordlist
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbsearch_wordmatch
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbsessions
DROP PRIMARY KEY,
DROP INDEX session_id_ip_user_id,
ADD INDEX session_ip (session_ip),
ADD INDEX session_id (session_id), DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbsessions_keys
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbsmilies
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbthemes
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbthemes_name
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbtopics
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbtopics_watch
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbuser_group
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbvote_desc
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbvote_results
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbvote_voters
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_bbwords
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_blocks
ADD groups text NOT NULL DEFAULT '' COMMENT '' COLLATE latin1_general_ci AFTER view,
DROP INDEX bid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_cities
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_comments
DROP last_moderation_ip,
DROP INDEX tid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
DROP TABLE nuke_comments_moderated;
ALTER TABLE nuke_config
ALTER minpass SET DEFAULT 8,
ALTER ultramode SET DEFAULT 1,
ALTER httpref SET DEFAULT 0, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_confirm
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_counter
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_downloads_categories
DROP INDEX cid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_downloads_downloads
DROP INDEX lid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_downloads_editorials
DROP INDEX downloadid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_downloads_modrequest
DROP INDEX requestid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_downloads_newdownload
DROP INDEX lid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_downloads_votedata
DROP INDEX ratingdbid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_encyclopedia
DROP INDEX eid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_encyclopedia_text
DROP INDEX tid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_faqanswer
DROP INDEX id, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_faqcategories
DROP INDEX id_cat, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_groups
DROP INDEX id,
ADD PRIMARY KEY (id), DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_groups_points
DROP INDEX id,
ADD PRIMARY KEY (id), DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_headlines
DROP INDEX hid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_journal
DROP INDEX jid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_journal_comments
DROP INDEX cid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_journal_stats
DROP INDEX id, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_links_categories
DROP INDEX cid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_links_editorials
DROP INDEX linkid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_links_links
DROP INDEX lid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_links_modrequest
DROP INDEX requestid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_links_newlink
DROP INDEX lid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_links_votedata
DROP INDEX ratingdbid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_main
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_message
ADD groups text NOT NULL DEFAULT '' COMMENT '' COLLATE latin1_general_ci AFTER view,
DROP INDEX mid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_modules
ADD groups text NOT NULL DEFAULT '' COMMENT '' COLLATE latin1_general_ci AFTER view,
DROP INDEX mid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_nsnst_admins
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_nsnst_blocked_ips
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_nsnst_blocked_ranges
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_nsnst_blockers
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_nsnst_cidrs
MODIFY cidr int(2) NOT NULL COMMENT '' auto_increment, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
#
# Fieldformat of
# nuke_nsnst_cidrs.cidr changed from int(2) NOT NULL DEFAULT '0' COMMENT '' to int(2) NOT NULL DEFAULT 0 COMMENT '' auto_increment.
# Possibly data modifications needed!
#
ALTER TABLE nuke_nsnst_config
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_nsnst_countries
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_nsnst_excluded_ranges
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_nsnst_ip2country
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_nsnst_protected_ranges
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_nsnst_tracked_ips
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_pages
DROP INDEX pid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_pages_categories
DROP INDEX cid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_poll_check
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_poll_data
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_poll_desc
DROP comments,
DROP INDEX pollID, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_pollcomments
DROP last_moderation_ip,
DROP INDEX tid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
DROP TABLE nuke_pollcomments_moderated;
ALTER TABLE nuke_public_messages
DROP INDEX mid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_queue
DROP INDEX qid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_referer
DROP INDEX rid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_related
DROP INDEX rid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_reviews
MODIFY reviewer varchar(25) NULL DEFAULT NULL COMMENT '' COLLATE latin1_general_ci,
DROP INDEX id, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
#
# Fieldformat of
# nuke_reviews.reviewer changed from varchar(20) NULL DEFAULT NULL COMMENT '' COLLATE latin1_swedish_ci to varchar(25) NULL DEFAULT NULL COMMENT '' COLLATE latin1_general_ci.
# Possibly data modifications needed!
#
ALTER TABLE nuke_reviews_add
MODIFY reviewer varchar(25) NOT NULL DEFAULT '' COMMENT '' COLLATE latin1_general_ci,
DROP INDEX id, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
#
# Fieldformat of
# nuke_reviews_add.reviewer changed from varchar(20) NOT NULL DEFAULT '' COMMENT '' COLLATE latin1_swedish_ci to varchar(25) NOT NULL DEFAULT '' COMMENT '' COLLATE latin1_general_ci.
# Possibly data modifications needed!
#
ALTER TABLE nuke_reviews_comments
DROP INDEX cid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
DROP TABLE nuke_reviews_comments_moderated;
ALTER TABLE nuke_reviews_main
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_session
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_stats_date
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_stats_hour
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_stats_month
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_stats_year
DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_stories
MODIFY aid varchar(25) NOT NULL DEFAULT '' COMMENT '' COLLATE latin1_general_ci,
MODIFY informant varchar(25) NOT NULL DEFAULT '' COMMENT '' COLLATE latin1_general_ci,
DROP rating_ip,
DROP INDEX sid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
#
# Fieldformats of
# nuke_stories.aid changed from varchar(30) NOT NULL DEFAULT '' COMMENT '' COLLATE latin1_swedish_ci to varchar(25) NOT NULL DEFAULT '' COMMENT '' COLLATE latin1_general_ci.
# nuke_stories.informant changed from varchar(20) NOT NULL DEFAULT '' COMMENT '' COLLATE latin1_swedish_ci to varchar(25) NOT NULL DEFAULT '' COMMENT '' COLLATE latin1_general_ci.
# Possibly data modifications needed!
#
ALTER TABLE nuke_stories_cat
DROP INDEX catid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE nuke_subscriptions
MODIFY userid int(10) NOT NULL DEFAULT '0' COMMENT '',
DROP INDEX id,
ADD PRIMARY KEY (id, userid), DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
#
# Fieldformat of
# nuke_subscriptions.userid changed from int(10) NULL DEFAULT '0' COMMENT '' to int(10) NOT NULL DEFAULT '0' COMMENT ''.
# Possibly data modifications needed!
#
ALTER TABLE nuke_topics
MODIFY topicimage varchar(20) NULL DEFAULT NULL COMMENT '' COLLATE latin1_general_ci,
DROP INDEX topicid, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
#
# Fieldformat of
# nuke_topics.topicimage changed from varchar(100) NOT NULL DEFAULT '' COMMENT '' COLLATE latin1_swedish_ci to varchar(20) NULL DEFAULT NULL COMMENT '' COLLATE latin1_general_ci.
# Possibly data modifications needed!
#
ALTER TABLE nuke_users
ADD user_login_tries smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT '' AFTER last_ip,
ADD user_last_login_try int(11) NOT NULL DEFAULT '0' COMMENT '' AFTER user_login_tries,
MODIFY bio tinytext NULL DEFAULT NULL COMMENT '' COLLATE latin1_general_ci,
MODIFY ublock tinytext NULL DEFAULT NULL COMMENT '' COLLATE latin1_general_ci,
DROP karma,
DROP INDEX uid,
DROP INDEX karma, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
#
# Fieldformats of
# nuke_users.bio changed from tinytext NOT NULL DEFAULT '' COMMENT '' COLLATE latin1_swedish_ci to tinytext NULL DEFAULT NULL COMMENT '' COLLATE latin1_general_ci.
# nuke_users.ublock changed from tinytext NOT NULL DEFAULT '' COMMENT '' COLLATE latin1_swedish_ci to tinytext NULL DEFAULT NULL COMMENT '' COLLATE latin1_general_ci.
# Possibly data modifications needed!
#
ALTER TABLE nuke_users_temp
ADD requestor varchar(25) NOT NULL DEFAULT '' COMMENT '' COLLATE latin1_general_ci AFTER time, DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
Joined: Aug 29, 2004 Posts: 7457 Location: Arizona
Posted:
Sun Mar 18, 2007 9:50 am
I hope you do not mind, but I have made this a Sticky. At the same time, I want to use this as an opportunity to mention a few learnings that I have had with regards to MySQLDiff as well as specific to this type of migration. I hope that you do not mind.
1) I can see that you had checked (it defaults to it) with MySQLDiff the option to show differences in character sets. This can actually cause you issues and I recommend unchecking that. I have found incompatibilities as I move databases around from one environment to the next when I leave the charset statements in there.
Some folks are going to be coming from different character set settings. So, everyone, please just keep this in mind. You may want to strip out all the CHARSET and COLLATE attributes.
2) If you already have the HTML NEwsletter installed on your 7.9 site, you should strip out the CREATE for these tables or just realize that you will get errors in phpMyAdmin that might prevent you from continuing.
3) Also, if you already had NSN Groups installed, you will get additional errors, so you will need to analyze those. In this case, you would want to remove the ALTER statements for nuke_blocks, nuke_messages and nuke_modules. In addition, you would want to remove the CREATEs for tables nuke_nsngr_config, nuke_nsngr_groups, and nuke_nsngr_users.
4) I also do not like how the nuke indexes are being dropped. This is definitely something we should look more into with a future release. I think with some large sites, better indexing could be a tremendous help (along with more efficient SQL calls).
That is all I can think of right now.
Thanks for sharing this, because I am sure it is going to be of help to some who choose to do this downgrade.
Joined: Apr 06, 2006 Posts: 2401 Location: Iowa, USA
Posted:
Sun Mar 18, 2007 11:59 am
I think each person should run mysqldiff themselves. It isn't that hard. But I provided this for those that didn't want to or didn't know how.
It is surprising at how many indexes got dropped. But that just means they got added after 7.6.
I was also surprised to see that I got the bbconfirm table. Is this used? How come I didn't need it before?
I also scratched my head on the char set and collation things. In my case it didn't matter. But good point. If I had shut that off the file would be a lot smaller.
Apparently I had a partially converted database. UGGHHHHHHHHH! Going through your script and running each query individually worked for the most part. Somehow ended up with the nuke_stories table having issues, but oh well. Working on a clean RN table and I'll just have to input some of the data manually.
This should work for those that haven't already messed things up previously.
Joined: Apr 06, 2006 Posts: 2401 Location: Iowa, USA
Posted:
Mon Apr 16, 2007 6:56 am
I'm glad someone got some use out of it. If I had to do it over again I would probably omit the queries that simply altered the character sets and/or dropped indices.
View next topic View previous topic
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum