20260417023147_AddMemberFollow.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. using System;
  2. using Microsoft.EntityFrameworkCore.Migrations;
  3. #nullable disable
  4. namespace Infrastructure.Migrations.AppDb;
  5. /// <inheritdoc />
  6. public partial class AddMemberFollow : Migration
  7. {
  8. /// <inheritdoc />
  9. protected override void Up(MigrationBuilder migrationBuilder)
  10. {
  11. migrationBuilder.CreateTable(
  12. name: "MemberFollow",
  13. columns: table => new
  14. {
  15. ID = table.Column<int>(type: "int", nullable: false, comment: "PK")
  16. .Annotation("SqlServer:Identity", "1, 1"),
  17. FollowerMemberID = table.Column<int>(type: "int", nullable: false, comment: "팔로우 주체 회원 ID"),
  18. FolloweeMemberID = table.Column<int>(type: "int", nullable: false, comment: "팔로우 대상 회원 ID"),
  19. NotifyOnPost = table.Column<bool>(type: "bit", nullable: false, comment: "새 글 알림 수신 여부"),
  20. IsMuted = table.Column<bool>(type: "bit", nullable: false, comment: "피드 숨김 여부"),
  21. CreatedAt = table.Column<DateTime>(type: "datetime2", nullable: false, comment: "팔로우 일시")
  22. },
  23. constraints: table =>
  24. {
  25. table.PrimaryKey("PK_MemberFollow", x => x.ID);
  26. table.ForeignKey(
  27. name: "FK_MemberFollow_Member_FolloweeMemberID",
  28. column: x => x.FolloweeMemberID,
  29. principalTable: "Member",
  30. principalColumn: "ID",
  31. onDelete: ReferentialAction.Restrict);
  32. table.ForeignKey(
  33. name: "FK_MemberFollow_Member_FollowerMemberID",
  34. column: x => x.FollowerMemberID,
  35. principalTable: "Member",
  36. principalColumn: "ID",
  37. onDelete: ReferentialAction.Restrict);
  38. },
  39. comment: "회원 팔로우 관계");
  40. migrationBuilder.CreateIndex(
  41. name: "IX_Post_MemberID_IsDeleted_CreatedAt",
  42. table: "Post",
  43. columns: new[] { "MemberID", "IsDeleted", "CreatedAt" },
  44. descending: new[] { false, false, true });
  45. migrationBuilder.CreateIndex(
  46. name: "IX_MemberFollow_FolloweeMemberID",
  47. table: "MemberFollow",
  48. column: "FolloweeMemberID");
  49. migrationBuilder.CreateIndex(
  50. name: "IX_MemberFollow_FollowerMemberID_CreatedAt",
  51. table: "MemberFollow",
  52. columns: new[] { "FollowerMemberID", "CreatedAt" },
  53. descending: new[] { false, true });
  54. migrationBuilder.CreateIndex(
  55. name: "IX_MemberFollow_FollowerMemberID_FolloweeMemberID",
  56. table: "MemberFollow",
  57. columns: new[] { "FollowerMemberID", "FolloweeMemberID" },
  58. unique: true);
  59. }
  60. /// <inheritdoc />
  61. protected override void Down(MigrationBuilder migrationBuilder)
  62. {
  63. migrationBuilder.DropTable(
  64. name: "MemberFollow");
  65. migrationBuilder.DropIndex(
  66. name: "IX_Post_MemberID_IsDeleted_CreatedAt",
  67. table: "Post");
  68. }
  69. }