summaryrefslogtreecommitdiff
path: root/src/marlin.web/Migrations/20260905011100_AddCommitModel.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/marlin.web/Migrations/20260905011100_AddCommitModel.cs')
-rw-r--r--src/marlin.web/Migrations/20260905011100_AddCommitModel.cs126
1 files changed, 126 insertions, 0 deletions
diff --git a/src/marlin.web/Migrations/20260905011100_AddCommitModel.cs b/src/marlin.web/Migrations/20260905011100_AddCommitModel.cs
new file mode 100644
index 0000000..78a23d0
--- /dev/null
+++ b/src/marlin.web/Migrations/20260905011100_AddCommitModel.cs
@@ -0,0 +1,126 @@
+using System;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace marlin.web.Migrations
+{
+ /// <inheritdoc />
+ public partial class AddCommitModel : Migration
+ {
+ /// <inheritdoc />
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropColumn(
+ name: "head_commit",
+ table: "source_branches");
+
+ migrationBuilder.AddColumn<Guid>(
+ name: "commit_id",
+ table: "source_branches",
+ type: "uuid",
+ nullable: false,
+ defaultValue: new Guid("00000000-0000-0000-0000-000000000000"));
+
+ migrationBuilder.CreateTable(
+ name: "source_commits",
+ columns: table => new
+ {
+ id = table.Column<Guid>(type: "uuid", nullable: false),
+ source_id = table.Column<Guid>(type: "uuid", nullable: false),
+ blobs_fetched = table.Column<bool>(type: "boolean", nullable: false),
+ hash = table.Column<string>(type: "text", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("pk_source_commits", x => x.id);
+ table.UniqueConstraint("ak_source_commits_source_id_hash", x => new { x.source_id, x.hash });
+ table.ForeignKey(
+ name: "fk_source_commits_sources_source_id",
+ column: x => x.source_id,
+ principalTable: "sources",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "source_blobs",
+ columns: table => new
+ {
+ id = table.Column<Guid>(type: "uuid", nullable: false),
+ source_id = table.Column<Guid>(type: "uuid", nullable: false),
+ commit_id = table.Column<Guid>(type: "uuid", nullable: false),
+ path = table.Column<string>(type: "text", nullable: false),
+ content = table.Column<string>(type: "text", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("pk_source_blobs", x => x.id);
+ table.ForeignKey(
+ name: "fk_source_blobs_source_commits_commit_id",
+ column: x => x.commit_id,
+ principalTable: "source_commits",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Cascade);
+ table.ForeignKey(
+ name: "fk_source_blobs_sources_source_id",
+ column: x => x.source_id,
+ principalTable: "sources",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateIndex(
+ name: "ix_source_branches_commit_id",
+ table: "source_branches",
+ column: "commit_id");
+
+ migrationBuilder.CreateIndex(
+ name: "ix_source_blobs_commit_id",
+ table: "source_blobs",
+ column: "commit_id");
+
+ migrationBuilder.CreateIndex(
+ name: "ix_source_blobs_source_id",
+ table: "source_blobs",
+ column: "source_id");
+
+ migrationBuilder.AddForeignKey(
+ name: "fk_source_branches_source_commits_commit_id",
+ table: "source_branches",
+ column: "commit_id",
+ principalTable: "source_commits",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Cascade);
+ }
+
+ /// <inheritdoc />
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropForeignKey(
+ name: "fk_source_branches_source_commits_commit_id",
+ table: "source_branches");
+
+ migrationBuilder.DropTable(
+ name: "source_blobs");
+
+ migrationBuilder.DropTable(
+ name: "source_commits");
+
+ migrationBuilder.DropIndex(
+ name: "ix_source_branches_commit_id",
+ table: "source_branches");
+
+ migrationBuilder.DropColumn(
+ name: "commit_id",
+ table: "source_branches");
+
+ migrationBuilder.AddColumn<string>(
+ name: "head_commit",
+ table: "source_branches",
+ type: "text",
+ nullable: false,
+ defaultValue: "");
+ }
+ }
+}