using System; using Microsoft.EntityFrameworkCore.Migrations; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable namespace BlueLaminate.EFCore.Migrations { /// public partial class AddPerSiteSweepCheckpoints : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.DropIndex( name: "ix_skins_listings_swept_at", schema: "skintracker", table: "skins"); migrationBuilder.DropIndex( name: "ix_skin_conditions_listings_swept_at", schema: "skintracker", table: "skin_conditions"); migrationBuilder.DropColumn( name: "listings_swept_at", schema: "skintracker", table: "skins"); migrationBuilder.DropColumn( name: "listings_swept_at", schema: "skintracker", table: "skin_conditions"); migrationBuilder.CreateTable( name: "skin_condition_sweeps", schema: "skintracker", columns: table => new { id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), skin_condition_id = table.Column(type: "integer", nullable: false), source = table.Column(type: "text", nullable: false), swept_at = table.Column(type: "timestamp with time zone", nullable: false) }, constraints: table => { table.PrimaryKey("pk_skin_condition_sweeps", x => x.id); table.ForeignKey( name: "fk_skin_condition_sweeps_skin_conditions_skin_condition_id", column: x => x.skin_condition_id, principalSchema: "skintracker", principalTable: "skin_conditions", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "skin_sweeps", schema: "skintracker", columns: table => new { id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), skin_id = table.Column(type: "integer", nullable: false), source = table.Column(type: "text", nullable: false), swept_at = table.Column(type: "timestamp with time zone", nullable: false) }, constraints: table => { table.PrimaryKey("pk_skin_sweeps", x => x.id); table.ForeignKey( name: "fk_skin_sweeps_skins_skin_id", column: x => x.skin_id, principalSchema: "skintracker", principalTable: "skins", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateIndex( name: "ix_skin_condition_sweeps_skin_condition_id_source", schema: "skintracker", table: "skin_condition_sweeps", columns: new[] { "skin_condition_id", "source" }, unique: true); migrationBuilder.CreateIndex( name: "ix_skin_condition_sweeps_source_swept_at", schema: "skintracker", table: "skin_condition_sweeps", columns: new[] { "source", "swept_at" }); migrationBuilder.CreateIndex( name: "ix_skin_sweeps_skin_id_source", schema: "skintracker", table: "skin_sweeps", columns: new[] { "skin_id", "source" }, unique: true); migrationBuilder.CreateIndex( name: "ix_skin_sweeps_source_swept_at", schema: "skintracker", table: "skin_sweeps", columns: new[] { "source", "swept_at" }); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "skin_condition_sweeps", schema: "skintracker"); migrationBuilder.DropTable( name: "skin_sweeps", schema: "skintracker"); migrationBuilder.AddColumn( name: "listings_swept_at", schema: "skintracker", table: "skins", type: "timestamp with time zone", nullable: true); migrationBuilder.AddColumn( name: "listings_swept_at", schema: "skintracker", table: "skin_conditions", type: "timestamp with time zone", nullable: true); migrationBuilder.CreateIndex( name: "ix_skins_listings_swept_at", schema: "skintracker", table: "skins", column: "listings_swept_at"); migrationBuilder.CreateIndex( name: "ix_skin_conditions_listings_swept_at", schema: "skintracker", table: "skin_conditions", column: "listings_swept_at"); } } }