From ac769e656b122ff569c3f1534701b71e00fed586 Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 27 Oct 2020 19:21:35 +0800 Subject: Split front and back end. --- .../20200810170533_MakePostAuthorOptional.cs | 78 ++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 BackEnd/Timeline/Migrations/20200810170533_MakePostAuthorOptional.cs (limited to 'BackEnd/Timeline/Migrations/20200810170533_MakePostAuthorOptional.cs') diff --git a/BackEnd/Timeline/Migrations/20200810170533_MakePostAuthorOptional.cs b/BackEnd/Timeline/Migrations/20200810170533_MakePostAuthorOptional.cs new file mode 100644 index 00000000..b0f0bca7 --- /dev/null +++ b/BackEnd/Timeline/Migrations/20200810170533_MakePostAuthorOptional.cs @@ -0,0 +1,78 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +namespace Timeline.Migrations +{ + public partial class MakePostAuthorOptional : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.Sql(@" +PRAGMA foreign_keys = 0; + +BEGIN TRANSACTION; + +CREATE TABLE new_timeline_posts ( + id INTEGER NOT NULL + CONSTRAINT PK_timeline_posts PRIMARY KEY AUTOINCREMENT, + timeline INTEGER NOT NULL, + author INTEGER, + content TEXT, + time TEXT NOT NULL, + last_updated TEXT NOT NULL, + local_id INTEGER NOT NULL + DEFAULT 0, + content_type TEXT NOT NULL + DEFAULT '', + extra_content TEXT, + CONSTRAINT FK_timeline_posts_users_author FOREIGN KEY ( + author + ) + REFERENCES users (id), + CONSTRAINT FK_timeline_posts_timelines_timeline FOREIGN KEY ( + timeline + ) + REFERENCES timelines (id) ON DELETE CASCADE +); + +INSERT INTO new_timeline_posts SELECT * FROM timeline_posts; + +DROP TABLE timeline_posts; + +ALTER TABLE new_timeline_posts RENAME TO timeline_posts; + +CREATE INDEX IX_timeline_posts_author ON timeline_posts (author); + +CREATE INDEX IX_timeline_posts_timeline ON timeline_posts(timeline); + +PRAGMA foreign_key_check; + +COMMIT TRANSACTION; + +PRAGMA foreign_keys = 1; + ", true); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_timeline_posts_users_author", + table: "timeline_posts"); + + migrationBuilder.AlterColumn( + name: "author", + table: "timeline_posts", + type: "INTEGER", + nullable: false, + oldClrType: typeof(long), + oldNullable: true); + + migrationBuilder.AddForeignKey( + name: "FK_timeline_posts_users_author", + table: "timeline_posts", + column: "author", + principalTable: "users", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + } + } +} -- cgit v1.2.3