From bcb0a2361467614531a337282da1fd23996924f1 Mon Sep 17 00:00:00 2001 From: crupest Date: Sat, 1 Feb 2020 00:25:41 +0800 Subject: ... --- .../20200131152033_RefactorUser.cs | 55 ++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 Timeline/Migrations/ProductionDatabase/20200131152033_RefactorUser.cs (limited to 'Timeline/Migrations/ProductionDatabase/20200131152033_RefactorUser.cs') diff --git a/Timeline/Migrations/ProductionDatabase/20200131152033_RefactorUser.cs b/Timeline/Migrations/ProductionDatabase/20200131152033_RefactorUser.cs new file mode 100644 index 00000000..a0ca5212 --- /dev/null +++ b/Timeline/Migrations/ProductionDatabase/20200131152033_RefactorUser.cs @@ -0,0 +1,55 @@ +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; + +namespace Timeline.Migrations.ProductionDatabase +{ + public partial class RefactorUser : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.Sql(@" +START TRANSACTION; + +ALTER TABLE `users` + CHANGE COLUMN `name` `username` varchar (26) NOT NULL, + RENAME INDEX IX_users_name TO IX_users_username, + ADD `nickname` varchar(100) CHARACTER SET utf8mb4 NULL; + +UPDATE users + SET nickname = ( + SELECT nickname + FROM user_details + WHERE user_details.UserId = users.id + ); + +ALTER TABLE `user_avatars` + CHANGE COLUMN `UserId` `user` bigint (20) NOT NULL, + RENAME INDEX IX_user_avatars_UserId TO IX_user_avatars_user, + DROP FOREIGN KEY FK_user_avatars_users_UserId, + ADD CONSTRAINT FK_user_avatars_users_user FOREIGN KEY (`user`) REFERENCES `users` (`id`) ON DELETE CASCADE; + +COMMIT; + "); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.Sql(@" +START TRANSACTION; + +ALTER TABLE `users` + CHANGE COLUMN `username` `name` varchar (26) NOT NULL, + RENAME INDEX IX_users_username TO IX_users_name, + DROP COLUMN `nickname`; + +ALTER TABLE `user_avatars` + CHANGE COLUMN `user` `UserId` bigint (20) NOT NULL, + RENAME INDEX IX_user_avatars_user TO IX_user_avatars_UserId, + DROP FOREIGN KEY FK_user_avatars_users_user, + ADD CONSTRAINT FK_user_avatars_users_UserId FOREIGN KEY (`UserId`) REFERENCES `users` (`id`) ON DELETE CASCADE; + +COMMIT; + "); + } + } +} -- cgit v1.2.3