diff options
author | crupest <crupest@outlook.com> | 2020-10-31 00:42:06 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-31 00:42:06 +0800 |
commit | a3c97f6fb6313da2e8c0fac0b4c08f2ef4265d0f (patch) | |
tree | ee006874b0c93e9bfc76f141a092a8b9585a1f95 /BackEnd/Timeline/Migrations/20200131100517_RefactorUser.cs | |
parent | 0c4caaebe2480e77918d5d7df234f0edaeab74ba (diff) | |
parent | 7ce0846d9ec968da3ea4f7ebcc6db26db8e49089 (diff) | |
download | timeline-a3c97f6fb6313da2e8c0fac0b4c08f2ef4265d0f.tar.gz timeline-a3c97f6fb6313da2e8c0fac0b4c08f2ef4265d0f.tar.bz2 timeline-a3c97f6fb6313da2e8c0fac0b4c08f2ef4265d0f.zip |
Merge pull request #161 from crupest/upgrade
Upgrade packages and split front end and back end.
Diffstat (limited to 'BackEnd/Timeline/Migrations/20200131100517_RefactorUser.cs')
-rw-r--r-- | BackEnd/Timeline/Migrations/20200131100517_RefactorUser.cs | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/BackEnd/Timeline/Migrations/20200131100517_RefactorUser.cs b/BackEnd/Timeline/Migrations/20200131100517_RefactorUser.cs new file mode 100644 index 00000000..8597ed50 --- /dev/null +++ b/BackEnd/Timeline/Migrations/20200131100517_RefactorUser.cs @@ -0,0 +1,128 @@ +using Microsoft.EntityFrameworkCore.Migrations;
+
+namespace Timeline.Migrations
+{
+ public partial class RefactorUser : Migration
+ {
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.RenameColumn(name: "name", table: "users", newName: "username");
+ migrationBuilder.RenameIndex(name: "IX_users_name", table: "users", newName: "IX_users_username");
+
+ migrationBuilder.AddColumn<string>(
+ name: "nickname",
+ table: "users",
+ nullable: true);
+
+ migrationBuilder.Sql(@"
+UPDATE users
+ SET nickname = (
+ SELECT nickname
+ FROM user_details
+ WHERE user_details.UserId = users.id
+ );
+ ");
+
+ /*
+ migrationBuilder.RenameColumn(name: "UserId", table: "user_avatars", newName: "user");
+
+ migrationBuilder.DropForeignKey(
+ name: "FK_user_avatars_users_UserId",
+ table: "user_avatars");
+
+ migrationBuilder.AddForeignKey(
+ name: "FK_user_avatars_users_user",
+ table: "user_avatars",
+ column: "user",
+ principalTable: "users",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Cascade);
+
+ migrationBuilder.RenameIndex(
+ name: "IX_user_avatars_UserId",
+ table: "user_avatars",
+ newName: "IX_user_avatars_user");
+ */
+
+ migrationBuilder.Sql(@"
+CREATE TABLE user_avatars_backup (
+ id INTEGER NOT NULL
+ CONSTRAINT PK_user_avatars PRIMARY KEY AUTOINCREMENT,
+ data BLOB,
+ type TEXT,
+ etag TEXT,
+ last_modified TEXT NOT NULL,
+ user INTEGER NOT NULL,
+ CONSTRAINT FK_user_avatars_users_user FOREIGN KEY (
+ user
+ )
+ REFERENCES users (id) ON DELETE CASCADE
+);
+
+INSERT INTO user_avatars_backup (id, data, type, etag, last_modified, user)
+ SELECT id, data, type, etag, last_modified, UserId FROM user_avatars;
+
+DROP TABLE user_avatars;
+
+ALTER TABLE user_avatars_backup
+ RENAME TO user_avatars;
+
+CREATE UNIQUE INDEX IX_user_avatars_user ON user_avatars (user);
+ ");
+
+ // migrationBuilder.DropTable(name: "user_details");
+
+ }
+
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.Sql(@"
+CREATE TABLE user_avatars_backup (
+ id INTEGER NOT NULL
+ CONSTRAINT PK_user_avatars PRIMARY KEY AUTOINCREMENT,
+ data BLOB,
+ type TEXT,
+ etag TEXT,
+ last_modified TEXT NOT NULL,
+ UserId INTEGER NOT NULL,
+ CONSTRAINT FK_user_avatars_users_UserId FOREIGN KEY (
+ user
+ )
+ REFERENCES users (id) ON DELETE CASCADE
+);
+
+INSERT INTO user_avatars_backup (id, data, type, etag, last_modified, UserId)
+ SELECT id, data, type, etag, last_modified, user FROM user_avatars;
+
+DROP TABLE user_avatars;
+
+ALTER TABLE user_avatars_backup
+ RENAME TO user_avatars;
+
+CREATE UNIQUE INDEX IX_user_avatars_UserId ON user_avatars (UserId);
+ ");
+
+ migrationBuilder.Sql(@"
+CREATE TABLE users_backup (
+ id INTEGER NOT NULL
+ CONSTRAINT PK_users PRIMARY KEY AUTOINCREMENT,
+ name TEXT NOT NULL,
+ password TEXT NOT NULL,
+ roles TEXT NOT NULL,
+ version INTEGER NOT NULL
+ DEFAULT 0
+);
+
+INSERT INTO users_backup (id, name, password, roles, version)
+ SELECT id, username, password, roles, version FROM users;
+
+DROP TABLE users;
+
+ALTER TABLE users_backup
+ RENAME TO users;
+
+CREATE UNIQUE INDEX IX_users_name ON users (name);
+ ");
+ }
+ }
+}
|