| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- using System;
- using Microsoft.EntityFrameworkCore.Migrations;
- #nullable disable
- namespace Infrastructure.Migrations.AppDb
- {
- /// <inheritdoc />
- public partial class AddSeibroReviewFixes : Migration
- {
- /// <inheritdoc />
- protected override void Up(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.DropIndex(
- name: "IX_ForeignCustodySecurity_StdDt_Isin",
- table: "ForeignCustodySecurity");
- migrationBuilder.AlterTable(
- name: "ForeignCustodySecurity",
- comment: "SEIBro 종목별 외화증권 보관현황 (getSecnFrsecCusInfo) — 종목당 국가별 복수 행. UQ(StdDt,Isin,NationCd,SecnTpcd) (리뷰 결함 #3). ForeignIsins seed 시 활성",
- oldComment: "SEIBro 종목별 외화증권 보관현황 (getSecnFrsecCusInfo) — 특정 외화종목(ISIN) 보유금액(USD)·보유수량. ForeignIsins seed 시 활성");
- migrationBuilder.AlterColumn<string>(
- name: "SecnTpcd",
- table: "ForeignCustodySecurity",
- type: "nvarchar(2)",
- maxLength: 2,
- nullable: false,
- defaultValue: "",
- comment: "종목구분코드 (SECN_TPCD) — 71외화주식~78외화수익증권. 자연키",
- oldClrType: typeof(string),
- oldType: "nvarchar(2)",
- oldMaxLength: 2,
- oldNullable: true,
- oldComment: "종목구분코드 (SECN_TPCD) — 71외화주식~78외화수익증권");
- migrationBuilder.AlterColumn<string>(
- name: "NationCd",
- table: "ForeignCustodySecurity",
- type: "nvarchar(2)",
- maxLength: 2,
- nullable: false,
- defaultValue: "",
- comment: "국가코드 (NATION_CD) — 자연키(종목당 국가별 복수 행)",
- oldClrType: typeof(string),
- oldType: "nvarchar(2)",
- oldMaxLength: 2,
- oldNullable: true,
- oldComment: "국가코드 (NATION_CD)");
- migrationBuilder.CreateTable(
- name: "SeibroFetchMarker",
- columns: table => new
- {
- ID = table.Column<int>(type: "int", nullable: false)
- .Annotation("SqlServer:Identity", "1, 1"),
- JobKey = table.Column<string>(type: "nvarchar(40)", maxLength: 40, nullable: false, comment: "수집 job 식별자"),
- EntityKey = table.Column<string>(type: "nvarchar(60)", maxLength: 60, nullable: false, comment: "대상 키 (ISIN·회사번호 등, 복합키는 구분자 결합)"),
- LastCheckedAt = table.Column<DateTime>(type: "datetime2", nullable: false, comment: "마지막 조회 시도 시각 (UTC, 0행 포함)")
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_SeibroFetchMarker", x => x.ID);
- },
- comment: "SEIBro per-키 rolling 조회 시도 마커 (0행 포함) — 리뷰 결함 #1: 정상 0행 재수집·starvation 해소용");
- migrationBuilder.CreateTable(
- name: "SeibroSweptDate",
- columns: table => new
- {
- ID = table.Column<int>(type: "int", nullable: false)
- .Annotation("SqlServer:Identity", "1, 1"),
- JobKey = table.Column<string>(type: "nvarchar(40)", maxLength: 40, nullable: false, comment: "수집 job 식별자"),
- Date = table.Column<DateOnly>(type: "date", nullable: false, comment: "스윕 대상 날짜 (요청 파라미터 날짜)"),
- Discriminator = table.Column<string>(type: "nvarchar(20)", maxLength: 20, nullable: false, comment: "스윕 축 구분 (tpcd/kacd/nation 등, 없으면 빈 문자열)"),
- SweptAt = table.Column<DateTime>(type: "datetime2", nullable: false, comment: "조회 완료 시각 (UTC, 0행 포함)")
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_SeibroSweptDate", x => x.ID);
- },
- comment: "SEIBro 날짜 스윕 조회 완료 마커 (0행 포함) — 리뷰 결함 #1: 조용한 날 재조회 제거용");
- migrationBuilder.CreateIndex(
- name: "IX_ForeignCustodySecurity_StdDt_Isin_NationCd_SecnTpcd",
- table: "ForeignCustodySecurity",
- columns: new[] { "StdDt", "Isin", "NationCd", "SecnTpcd" },
- unique: true);
- migrationBuilder.CreateIndex(
- name: "IX_SeibroFetchMarker_JobKey_EntityKey",
- table: "SeibroFetchMarker",
- columns: new[] { "JobKey", "EntityKey" },
- unique: true);
- migrationBuilder.CreateIndex(
- name: "IX_SeibroFetchMarker_JobKey_LastCheckedAt",
- table: "SeibroFetchMarker",
- columns: new[] { "JobKey", "LastCheckedAt" });
- migrationBuilder.CreateIndex(
- name: "IX_SeibroSweptDate_JobKey_Date_Discriminator",
- table: "SeibroSweptDate",
- columns: new[] { "JobKey", "Date", "Discriminator" },
- unique: true);
- }
- /// <inheritdoc />
- protected override void Down(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.DropTable(
- name: "SeibroFetchMarker");
- migrationBuilder.DropTable(
- name: "SeibroSweptDate");
- migrationBuilder.DropIndex(
- name: "IX_ForeignCustodySecurity_StdDt_Isin_NationCd_SecnTpcd",
- table: "ForeignCustodySecurity");
- migrationBuilder.AlterTable(
- name: "ForeignCustodySecurity",
- comment: "SEIBro 종목별 외화증권 보관현황 (getSecnFrsecCusInfo) — 특정 외화종목(ISIN) 보유금액(USD)·보유수량. ForeignIsins seed 시 활성",
- oldComment: "SEIBro 종목별 외화증권 보관현황 (getSecnFrsecCusInfo) — 종목당 국가별 복수 행. UQ(StdDt,Isin,NationCd,SecnTpcd) (리뷰 결함 #3). ForeignIsins seed 시 활성");
- migrationBuilder.AlterColumn<string>(
- name: "SecnTpcd",
- table: "ForeignCustodySecurity",
- type: "nvarchar(2)",
- maxLength: 2,
- nullable: true,
- comment: "종목구분코드 (SECN_TPCD) — 71외화주식~78외화수익증권",
- oldClrType: typeof(string),
- oldType: "nvarchar(2)",
- oldMaxLength: 2,
- oldComment: "종목구분코드 (SECN_TPCD) — 71외화주식~78외화수익증권. 자연키");
- migrationBuilder.AlterColumn<string>(
- name: "NationCd",
- table: "ForeignCustodySecurity",
- type: "nvarchar(2)",
- maxLength: 2,
- nullable: true,
- comment: "국가코드 (NATION_CD)",
- oldClrType: typeof(string),
- oldType: "nvarchar(2)",
- oldMaxLength: 2,
- oldComment: "국가코드 (NATION_CD) — 자연키(종목당 국가별 복수 행)");
- migrationBuilder.CreateIndex(
- name: "IX_ForeignCustodySecurity_StdDt_Isin",
- table: "ForeignCustodySecurity",
- columns: new[] { "StdDt", "Isin" },
- unique: true);
- }
- }
- }
|