From b629695c7c28fb89b91f2f7e09f7eea632c21aba Mon Sep 17 00:00:00 2001 From: crupest Date: Sun, 5 Jan 2020 23:19:56 +0800 Subject: Use sqlite development database. --- .../20191031064541_Initialize.cs | 105 +++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 Timeline/Migrations/ProductionDatabase/20191031064541_Initialize.cs (limited to 'Timeline/Migrations/ProductionDatabase/20191031064541_Initialize.cs') diff --git a/Timeline/Migrations/ProductionDatabase/20191031064541_Initialize.cs b/Timeline/Migrations/ProductionDatabase/20191031064541_Initialize.cs new file mode 100644 index 00000000..dc989a96 --- /dev/null +++ b/Timeline/Migrations/ProductionDatabase/20191031064541_Initialize.cs @@ -0,0 +1,105 @@ +using System; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; + +namespace Timeline.Migrations.ProductionDatabase +{ + public partial class Initialize : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "users", + columns: table => new + { + id = table.Column(nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + name = table.Column(maxLength: 26, nullable: false), + password = table.Column(nullable: false), + roles = table.Column(nullable: false), + version = table.Column(nullable: false, defaultValue: 0L) + }, + constraints: table => + { + table.PrimaryKey("PK_users", x => x.id); + }); + + migrationBuilder.CreateTable( + name: "user_avatars", + columns: table => new + { + id = table.Column(nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + data = table.Column(nullable: true), + type = table.Column(nullable: true), + etag = table.Column(maxLength: 30, nullable: true), + last_modified = table.Column(nullable: false), + UserId = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_user_avatars", x => x.id); + table.ForeignKey( + name: "FK_user_avatars_users_UserId", + column: x => x.UserId, + principalTable: "users", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "user_details", + columns: table => new + { + id = table.Column(nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + nickname = table.Column(maxLength: 26, nullable: true), + UserId = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_user_details", x => x.id); + table.ForeignKey( + name: "FK_user_details_users_UserId", + column: x => x.UserId, + principalTable: "users", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + name: "IX_user_avatars_UserId", + table: "user_avatars", + column: "UserId", + unique: true); + + migrationBuilder.CreateIndex( + name: "IX_user_details_UserId", + table: "user_details", + column: "UserId", + unique: true); + + migrationBuilder.CreateIndex( + name: "IX_users_name", + table: "users", + column: "name", + unique: true); + + // Add a init user. Username is "administrator". Password is "crupest". + migrationBuilder.InsertData("users", new string[] { "name", "password", "roles" }, + new object[] { "administrator", "AQAAAAEAACcQAAAAENsspZrk8Wo+UuMyg6QuWJsNvRg6gVu4K/TumVod3h9GVLX9zDVuQQds3o7V8QWJ2w==", "user,admin" }); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "user_avatars"); + + migrationBuilder.DropTable( + name: "user_details"); + + migrationBuilder.DropTable( + name: "users"); + } + } +} -- cgit v1.2.3