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 | 1b80b699e477a0c14a069401cf39126d19668bf0 (patch) | |
| tree | 0d1c10cd42398bea87e0169e8a4ec385b71f49bc /BackEnd/Timeline/Migrations/20200810170533_MakePostAuthorOptional.cs | |
| parent | 0062a22423806c9501752132133e14de02355760 (diff) | |
| parent | 5875e7a19ff8eb244e2849647ba35aa898de6b52 (diff) | |
| download | timeline-1b80b699e477a0c14a069401cf39126d19668bf0.tar.gz timeline-1b80b699e477a0c14a069401cf39126d19668bf0.tar.bz2 timeline-1b80b699e477a0c14a069401cf39126d19668bf0.zip | |
Merge pull request #161 from crupest/upgrade
Upgrade packages and split front end and back end.
Diffstat (limited to 'BackEnd/Timeline/Migrations/20200810170533_MakePostAuthorOptional.cs')
| -rw-r--r-- | BackEnd/Timeline/Migrations/20200810170533_MakePostAuthorOptional.cs | 78 | 
1 files changed, 78 insertions, 0 deletions
| 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<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);
 +        }
 +    }
 +}
 | 
