aboutsummaryrefslogtreecommitdiff
path: root/Timeline/Migrations/ProductionDatabase/20200131152033_RefactorUser.cs
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2020-02-01 00:25:41 +0800
committercrupest <crupest@outlook.com>2020-02-01 00:25:41 +0800
commitbcb0a2361467614531a337282da1fd23996924f1 (patch)
treef02f8d57440c777d4732bc4439f82e8b25c6732c /Timeline/Migrations/ProductionDatabase/20200131152033_RefactorUser.cs
parent69a5cc2a6f3282de4859d7c083bd67dfa17226fb (diff)
downloadtimeline-bcb0a2361467614531a337282da1fd23996924f1.tar.gz
timeline-bcb0a2361467614531a337282da1fd23996924f1.tar.bz2
timeline-bcb0a2361467614531a337282da1fd23996924f1.zip
...
Diffstat (limited to 'Timeline/Migrations/ProductionDatabase/20200131152033_RefactorUser.cs')
-rw-r--r--Timeline/Migrations/ProductionDatabase/20200131152033_RefactorUser.cs55
1 files changed, 55 insertions, 0 deletions
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;
+ ");
+ }
+ }
+}