Michael Kummer wrote:
hi!
is it possible without loosing user data/mails?
and how should it be accomplished.
i guess there exists no converter script for my old myisam tables to the
latest db layout using innodb.
Converting from rc3 to 1.0+ can be done with the statements in the
attachment.
Converting to innodb simply use:
alter table users type=innodb;
alter table messages type=innodb;
alter table messageblks type=innodb;
...
etc...
You will want to shut down dbmail and your mta though, to prevent
locking issues and speed up the conversion.
--
________________________________________________________________
Paul Stevens mailto:[EMAIL PROTECTED]
NET FACILITIES GROUP PGP: finger [EMAIL PROTECTED]
The Netherlands________________________________http://www.nfg.nl
alter table aliases change client_id client_idnr bigint(21) DEFAULT '0' NOT
NULL;
alter table aliases drop index alias_idnr;
alter table aliases add index alias (alias);
rename table mailbox to mailboxes;
alter table mailboxes change mailboxidnr mailbox_idnr bigint(21) DEFAULT '0'
NOT NULL auto_increment;
alter table mailboxes change owneridnr owner_idnr bigint(21) DEFAULT '0' NOT
NULL;
rename table message to messages;
alter table messages change messageidnr message_idnr bigint(21) DEFAULT '0' NOT
NULL auto_increment;
alter table messages change mailboxidnr mailbox_idnr bigint(21) DEFAULT '0' NOT
NULL;
alter table messages add rfcsize bigint(21) DEFAULT '0' NOT NULL;
alter table messages drop index messageidnr_2;
alter table messages add unique message_idnr_2 (message_idnr);
alter table messages drop index messageidnr;
alter table messages add index message_idnr (message_idnr);
rename table messageblk to messageblks;
alter table messageblks change messageblknr messageblk_idnr bigint(21) DEFAULT
'0' NOT NULL auto_increment;
alter table messageblks change messageidnr message_idnr bigint(21) DEFAULT '0'
NOT NULL;
alter table messageblks drop index messageblknr_2;
alter table messageblks add unique key messageblk_idnr_2 (messageblk_idnr);
alter table messageblks drop index messageblknr;
alter table messageblks add index messageblk_idnr (messageblk_idnr);
rename table user to users;
alter table users change useridnr user_idnr bigint(21) DEFAULT '0' NOT NULL
auto_increment;
alter table users change clientid client_idnr bigint(21) DEFAULT '0' NOT NULL;
alter table users add encryption_type varchar(20) DEFAULT '' NOT NULL;
alter table users add last_login DATETIME DEFAULT '1979-11-03 22:05:58' NOT
NULL;
alter table users add UNIQUE userid_2 (userid);
alter table users drop index useridnr;
alter table users add index user_idnr(user_idnr,userid);
CREATE TABLE auto_notifications (
auto_notify_idnr bigint(21) default '0' not null auto_increment,
user_idnr bigint(21) DEFAULT '0' NOT NULL,
notify_address VARCHAR(100),
PRIMARY KEY (auto_notify_idnr)
);
CREATE TABLE auto_replies (
auto_reply_idnr bigint(21) DEFAULT '0' NOT NULL auto_increment,
user_idnr bigint(21) DEFAULT '0' NOT NULL,
reply_body mediumtext,
PRIMARY KEY (auto_reply_idnr)
);
CREATE TABLE tmpmessage (
message_idnr bigint(21) DEFAULT '0' NOT NULL auto_increment,
mailbox_idnr int(21) DEFAULT '0' NOT NULL,
messagesize bigint(21) DEFAULT '0' NOT NULL,
seen_flag tinyint(1) default '0' not null,
answered_flag tinyint(1) default '0' not null,
deleted_flag tinyint(1) default '0' not null,
flagged_flag tinyint(1) default '0' not null,
recent_flag tinyint(1) default '0' not null,
draft_flag tinyint(1) default '0' not null,
unique_id varchar(70) NOT NULL,
internal_date datetime default '0' not null,
status tinyint(3) unsigned zerofill default '000' not null,
PRIMARY KEY (message_idnr),
KEY message_idnr (message_idnr),
UNIQUE message_idnr_2 (message_idnr)
);
CREATE TABLE tmpmessageblk (
messageblk_idnr bigint(21) DEFAULT '0' NOT NULL auto_increment,
message_idnr bigint(21) DEFAULT '0' NOT NULL,
messageblk longtext NOT NULL,
blocksize bigint(21) DEFAULT '0' NOT NULL,
PRIMARY KEY (messageblk_idnr),
KEY messageblk_idnr (messageblk_idnr),
KEY msg_index (message_idnr),
UNIQUE messageblk_idnr_2 (messageblk_idnr)
);