| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- using System;
- using Microsoft.EntityFrameworkCore.Migrations;
- #nullable disable
- namespace bitforum.Migrations.DefaultDb
- {
- /// <inheritdoc />
- public partial class AddMember : Migration
- {
- /// <inheritdoc />
- protected override void Up(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.AlterColumn<string>(
- name: "Image",
- table: "BannerItem",
- type: "nvarchar(1024)",
- maxLength: 1024,
- nullable: true,
- oldClrType: typeof(string),
- oldType: "nvarchar(1024)",
- oldMaxLength: 1024);
- migrationBuilder.CreateTable(
- name: "MemberApprove",
- columns: table => new
- {
- ID = table.Column<int>(type: "int", nullable: false, comment: "회원 ID")
- .Annotation("SqlServer:Identity", "1, 1"),
- IsReceiveSMS = table.Column<bool>(type: "bit", nullable: false, comment: "SMS 수신 여부"),
- IsReceiveEmail = table.Column<bool>(type: "bit", nullable: false, comment: "E-MAIL 수신 여부"),
- IsReceiveNote = table.Column<bool>(type: "bit", nullable: false, comment: "쪽지 수신 여부"),
- IsDisclosureInvest = table.Column<bool>(type: "bit", nullable: false, comment: "투자 현황 공개 여부")
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_MemberApprove", x => x.ID);
- },
- comment: "회원 동의 및 수신 여부");
- migrationBuilder.CreateTable(
- name: "MemberGrade",
- columns: table => new
- {
- ID = table.Column<int>(type: "int", nullable: false, comment: "PK")
- .Annotation("SqlServer:Identity", "1, 1"),
- KorName = table.Column<string>(type: "nvarchar(120)", maxLength: 120, nullable: false, comment: "한글 명"),
- EngName = table.Column<string>(type: "nvarchar(120)", maxLength: 120, nullable: false, comment: "영문 명"),
- Description = table.Column<string>(type: "nvarchar(1000)", maxLength: 1000, nullable: true, comment: "설명"),
- Order = table.Column<short>(type: "smallint", nullable: false, comment: "순서"),
- Image = table.Column<string>(type: "nvarchar(max)", nullable: true, comment: "이미지"),
- RequiredExp = table.Column<int>(type: "int", nullable: false, comment: "최소 경험치(Exp)"),
- RequiredCoin = table.Column<int>(type: "int", nullable: false, comment: "최소 코인(Coin)"),
- IsActive = table.Column<bool>(type: "bit", nullable: false, comment: "사용 여부"),
- UpdatedAt = table.Column<DateTime>(type: "datetime2", nullable: true, comment: "수정 일시"),
- CreatedAt = table.Column<DateTime>(type: "datetime2", nullable: false, comment: "등록 일시")
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_MemberGrade", x => x.ID);
- },
- comment: "회원 등급");
- migrationBuilder.CreateTable(
- name: "Member",
- columns: table => new
- {
- ID = table.Column<int>(type: "int", nullable: false, comment: "PK"),
- GradeID = table.Column<int>(type: "int", nullable: true, comment: "회원등급 ID"),
- SID = table.Column<string>(type: "nvarchar(20)", maxLength: 20, nullable: false, comment: "SID"),
- Email = table.Column<string>(type: "nvarchar(255)", maxLength: 255, nullable: false, comment: "이메일"),
- Name = table.Column<string>(type: "nvarchar(20)", maxLength: 20, nullable: true, comment: "별명"),
- FullName = table.Column<string>(type: "nvarchar(40)", maxLength: 40, nullable: true, comment: "본명"),
- FirstName = table.Column<string>(type: "nvarchar(20)", maxLength: 20, nullable: true, comment: "본명(성)"),
- LastName = table.Column<string>(type: "nvarchar(40)", maxLength: 40, nullable: true, comment: "본명(이름)"),
- Password = table.Column<string>(type: "nvarchar(255)", maxLength: 255, nullable: false, comment: "비밀번호"),
- Intro = table.Column<string>(type: "nvarchar(1000)", maxLength: 1000, nullable: true, comment: "자기소개"),
- Summary = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true, comment: "한마디"),
- Coin = table.Column<long>(type: "bigint", nullable: false, comment: "코인"),
- Exp = table.Column<int>(type: "int", nullable: false, comment: "경험치"),
- Phone = table.Column<string>(type: "nvarchar(15)", maxLength: 15, nullable: true, comment: "연락처"),
- Birthday = table.Column<DateOnly>(type: "date", maxLength: 10, nullable: true, comment: "생년월일"),
- Gender = table.Column<int>(type: "int", maxLength: 6, nullable: true, comment: "성별"),
- Photo = table.Column<string>(type: "nvarchar(255)", maxLength: 255, nullable: true, comment: "사진"),
- IsEmailVerified = table.Column<bool>(type: "bit", nullable: false, comment: "이메일 인증 여부"),
- IsAuthCertified = table.Column<bool>(type: "bit", nullable: false, comment: "본인 인증 여부"),
- IsDenied = table.Column<bool>(type: "bit", nullable: false, comment: "차단 여부"),
- IsAdmin = table.Column<bool>(type: "bit", nullable: false, comment: "운영진 여부"),
- IsWithdraw = table.Column<bool>(type: "bit", nullable: false, comment: "탈퇴 여부"),
- Following = table.Column<int>(type: "int", nullable: false, comment: "구독 중"),
- Followed = table.Column<int>(type: "int", nullable: false, comment: "구독자"),
- DeviceInfo = table.Column<string>(type: "nvarchar(400)", maxLength: 400, nullable: true, comment: "로그인 단말기 정보"),
- SignupIP = table.Column<string>(type: "nvarchar(15)", maxLength: 15, nullable: false, comment: "회원가입 시 IP"),
- LastLoginIp = table.Column<string>(type: "nvarchar(15)", maxLength: 15, nullable: true, comment: "마지막 로그인 IP"),
- LastLoginAt = table.Column<DateTime>(type: "datetime2", nullable: true, comment: "마지막 로그인 일시"),
- EmailVerifiedAt = table.Column<DateTime>(type: "datetime2", nullable: true, comment: "이메일 인증 일시"),
- AuthCertifiedAt = table.Column<DateTime>(type: "datetime2", nullable: true, comment: "본인인증 일시"),
- PasswordUpdatedAt = table.Column<DateTime>(type: "datetime2", nullable: false, comment: "비밀번호 변경 일시"),
- CreatedAt = table.Column<DateTime>(type: "datetime2", nullable: false, comment: "가입 일시"),
- UpdatedAt = table.Column<DateTime>(type: "datetime2", nullable: true, comment: "수정 일시"),
- DeletedAt = table.Column<DateTime>(type: "datetime2", nullable: true, comment: "탈퇴 일시")
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_Member", x => x.ID);
- table.ForeignKey(
- name: "FK_Member_MemberApprove_ID",
- column: x => x.ID,
- principalTable: "MemberApprove",
- principalColumn: "ID",
- onDelete: ReferentialAction.Cascade);
- table.ForeignKey(
- name: "FK_Member_MemberGrade_GradeID",
- column: x => x.GradeID,
- principalTable: "MemberGrade",
- principalColumn: "ID");
- },
- comment: "회원 정보");
- migrationBuilder.CreateIndex(
- name: "IX_BannerPosition_IsActive",
- table: "BannerPosition",
- column: "IsActive");
- migrationBuilder.CreateIndex(
- name: "IX_Member_Email",
- table: "Member",
- column: "Email",
- unique: true);
- migrationBuilder.CreateIndex(
- name: "IX_Member_GradeID",
- table: "Member",
- column: "GradeID");
- migrationBuilder.CreateIndex(
- name: "IX_Member_Name",
- table: "Member",
- column: "Name",
- unique: true,
- filter: "[Name] IS NOT NULL");
- migrationBuilder.CreateIndex(
- name: "IX_Member_SID",
- table: "Member",
- column: "SID",
- unique: true);
- migrationBuilder.CreateIndex(
- name: "IX_MemberGrade_EngName",
- table: "MemberGrade",
- column: "EngName",
- unique: true);
- migrationBuilder.CreateIndex(
- name: "IX_MemberGrade_KorName",
- table: "MemberGrade",
- column: "KorName",
- unique: true);
- }
- /// <inheritdoc />
- protected override void Down(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.DropTable(
- name: "Member");
- migrationBuilder.DropTable(
- name: "MemberApprove");
- migrationBuilder.DropTable(
- name: "MemberGrade");
- migrationBuilder.DropIndex(
- name: "IX_BannerPosition_IsActive",
- table: "BannerPosition");
- migrationBuilder.AlterColumn<string>(
- name: "Image",
- table: "BannerItem",
- type: "nvarchar(1024)",
- maxLength: 1024,
- nullable: false,
- defaultValue: "",
- oldClrType: typeof(string),
- oldType: "nvarchar(1024)",
- oldMaxLength: 1024,
- oldNullable: true);
- }
- }
- }
|