mirror of
https://bitbucket.org/anguist/ntpa
synced 2026-10-03 00:51:08 +00:00
85 lines
4.0 KiB
SQL
85 lines
4.0 KiB
SQL
/* Provider schema block -- version 3 */
|
|
|
|
/* create our application and user tables */
|
|
create table my_aspnet_applications(id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(256), description VARCHAR(256));
|
|
create table my_aspnet_users(id INT PRIMARY KEY AUTO_INCREMENT,
|
|
applicationId INT NOT NULL, name VARCHAR(256) NOT NULL,
|
|
isAnonymous TINYINT(1) NOT NULL DEFAULT 1, lastActivityDate DATETIME);
|
|
create table my_aspnet_profiles(userId INT PRIMARY KEY, valueindex longtext, stringdata longtext, binarydata longblob, lastUpdatedDate timestamp);
|
|
create table my_aspnet_schemaversion(version INT);
|
|
|
|
insert into my_aspnet_schemaversion VALUES (3);
|
|
|
|
/* now we need to migrate all applications into our apps table */
|
|
insert into my_aspnet_applications (name) select ApplicationName from mysql_Membership UNION select ApplicationName from mysql_UsersInRoles;
|
|
|
|
/* now we make our changes to the existing tables */
|
|
alter table mysql_Membership
|
|
rename to my_aspnet_membership,
|
|
drop primary key,
|
|
drop column pkid,
|
|
drop column IsOnline,
|
|
add column userId INT FIRST,
|
|
add column applicationId INT AFTER userId;
|
|
|
|
alter table mysql_Roles
|
|
rename to my_aspnet_roles,
|
|
drop key Rolename,
|
|
add column id INT PRIMARY KEY AUTO_INCREMENT FIRST,
|
|
add column applicationId INT NOT NULL AFTER id;
|
|
|
|
alter table mysql_UsersInRoles
|
|
drop key Username,
|
|
rename to my_aspnet_usersinroles,
|
|
add column userId INT FIRST,
|
|
add column roleId INT AFTER userId,
|
|
add column applicationId INT AFTER roleId;
|
|
|
|
ALTER TABLE my_aspnet_membership CONVERT TO CHARACTER SET DEFAULT;
|
|
ALTER TABLE my_aspnet_roles CONVERT TO CHARACTER SET DEFAULT;
|
|
ALTER TABLE my_aspnet_usersinroles CONVERT TO CHARACTER SET DEFAULT;
|
|
|
|
/* these next lines set the application Id on our tables appropriately */
|
|
update my_aspnet_membership m, my_aspnet_applications a set m.applicationId = a.id where a.name=m.ApplicationName;
|
|
update my_aspnet_roles r, my_aspnet_applications a set r.applicationId = a.id where a.name=r.ApplicationName;
|
|
update my_aspnet_usersinroles u, my_aspnet_applications a set u.applicationId = a.id where a.name=u.ApplicationName;
|
|
|
|
/* now merge our usernames into our users table */
|
|
insert into my_aspnet_users (applicationId, name)
|
|
select applicationId, Username from my_aspnet_membership
|
|
UNION select applicationId, Username from my_aspnet_usersinroles;
|
|
|
|
/* now set the user ids in our tables accordingly */
|
|
update my_aspnet_membership m, my_aspnet_users u set m.userId = u.id where u.name=m.Username AND u.applicationId=m.applicationId;
|
|
update my_aspnet_usersinroles r, my_aspnet_users u set r.userId = u.id where u.name=r.Username AND u.applicationId=r.applicationId;
|
|
|
|
/* now update the isanonymous and last activity date fields for the users */
|
|
update my_aspnet_users u, my_aspnet_membership m
|
|
set u.isAnonymous=0, u.lastActivityDate=m.LastActivityDate
|
|
where u.name = m.Username;
|
|
|
|
/* make final changes to our tables */
|
|
alter table my_aspnet_membership
|
|
drop column Username,
|
|
drop column ApplicationName,
|
|
drop column applicationId,
|
|
add primary key (userId);
|
|
|
|
/* next we set our role id values appropriately */
|
|
update my_aspnet_usersinroles u, my_aspnet_roles r set u.roleId = r.id where u.Rolename = r.Rolename and r.applicationId=u.applicationId;
|
|
|
|
/* now we make the final changes to our roles tables */
|
|
alter table my_aspnet_roles
|
|
drop column ApplicationName,
|
|
change column Rolename name VARCHAR(255) NOT NULL;
|
|
|
|
alter table my_aspnet_usersinroles
|
|
drop column ApplicationName,
|
|
drop column applicationId,
|
|
drop column Username,
|
|
drop column Rolename,
|
|
add primary key (userId, roleId);
|
|
|
|
|
|
|
|
|