diff options
| author | crupest <crupest@outlook.com> | 2020-08-11 01:16:56 +0800 | 
|---|---|---|
| committer | crupest <crupest@outlook.com> | 2020-08-11 01:16:56 +0800 | 
| commit | e02e1e120693d466679cae2b602085f57b60971f (patch) | |
| tree | 4ef46f3861528b8b5287cc4a6912fb402dee57cd /Timeline/Migrations/20200810170533_MakePostAuthorOptional.cs | |
| parent | 06e79c99bbc810f16058b35f1c88c23148bf8e57 (diff) | |
| download | timeline-e02e1e120693d466679cae2b602085f57b60971f.tar.gz timeline-e02e1e120693d466679cae2b602085f57b60971f.tar.bz2 timeline-e02e1e120693d466679cae2b602085f57b60971f.zip  | |
Make author column of post nullable.
Diffstat (limited to 'Timeline/Migrations/20200810170533_MakePostAuthorOptional.cs')
| -rw-r--r-- | Timeline/Migrations/20200810170533_MakePostAuthorOptional.cs | 78 | 
1 files changed, 78 insertions, 0 deletions
diff --git a/Timeline/Migrations/20200810170533_MakePostAuthorOptional.cs b/Timeline/Migrations/20200810170533_MakePostAuthorOptional.cs new file mode 100644 index 00000000..b0f0bca7 --- /dev/null +++ b/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<long>(
 +                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);
 +        }
 +    }
 +}
  | 
