| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- using Microsoft.EntityFrameworkCore.Migrations;
- #nullable disable
- namespace Infrastructure.Migrations.AppDb
- {
- /// <summary>
- /// 파생상품(선물/옵션) 일별매매에 매매 세션(Session, 1=정규/2=야간) 컬럼 추가 + UQ 를 (Kind, IsuCode, TradeDate, Session) 으로 확장.
- /// KRX 파생 응답은 동일 ISU_CD 로 정규·야간 행을 각각 제공하는데 기존 upsert 키에 세션이 없어 야간 행이 정규 종가·거래량을 덮어썼다.
- ///
- /// ⚠ 기존 운영 적재분은 세션 혼합 오염 가능(야간 값이 정규 위에 덮어써진 상태로 Session 기본값 1 이 매겨짐) —
- /// 배포 시 FuturesDailyTrade / OptionsDailyTrade 를 truncate 후 재백필 권장 (배치가 3년치를 자동으로 다시 메운다).
- /// </summary>
- public partial class AddDerivativeMarketSession : Migration
- {
- /// <inheritdoc />
- protected override void Up(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.DropIndex(
- name: "IX_OptionsDailyTrade_OptionsKind_IsuCode_TradeDate",
- table: "OptionsDailyTrade");
- migrationBuilder.DropIndex(
- name: "IX_OptionsDailyTrade_OptionsKind_TradeDate_TradeValue",
- table: "OptionsDailyTrade");
- migrationBuilder.DropIndex(
- name: "IX_FuturesDailyTrade_FuturesKind_IsuCode_TradeDate",
- table: "FuturesDailyTrade");
- migrationBuilder.DropIndex(
- name: "IX_FuturesDailyTrade_FuturesKind_TradeDate_TradeValue",
- table: "FuturesDailyTrade");
- migrationBuilder.AddColumn<byte>(
- name: "Session",
- table: "OptionsDailyTrade",
- type: "tinyint",
- nullable: false,
- defaultValue: (byte)1,
- comment: "매매 세션 (1=정규, 2=야간)");
- migrationBuilder.AddColumn<byte>(
- name: "Session",
- table: "FuturesDailyTrade",
- type: "tinyint",
- nullable: false,
- defaultValue: (byte)1,
- comment: "매매 세션 (1=정규, 2=야간)");
- migrationBuilder.CreateIndex(
- name: "IX_OptionsDailyTrade_OptionsKind_IsuCode_TradeDate_Session",
- table: "OptionsDailyTrade",
- columns: new[] { "OptionsKind", "IsuCode", "TradeDate", "Session" },
- unique: true);
- migrationBuilder.CreateIndex(
- name: "IX_OptionsDailyTrade_OptionsKind_TradeDate_Session_TradeValue",
- table: "OptionsDailyTrade",
- columns: new[] { "OptionsKind", "TradeDate", "Session", "TradeValue" },
- descending: new[] { false, false, false, true });
- migrationBuilder.CreateIndex(
- name: "IX_FuturesDailyTrade_FuturesKind_IsuCode_TradeDate_Session",
- table: "FuturesDailyTrade",
- columns: new[] { "FuturesKind", "IsuCode", "TradeDate", "Session" },
- unique: true);
- migrationBuilder.CreateIndex(
- name: "IX_FuturesDailyTrade_FuturesKind_TradeDate_Session_TradeValue",
- table: "FuturesDailyTrade",
- columns: new[] { "FuturesKind", "TradeDate", "Session", "TradeValue" },
- descending: new[] { false, false, false, true });
- }
- /// <inheritdoc />
- protected override void Down(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.DropIndex(
- name: "IX_OptionsDailyTrade_OptionsKind_IsuCode_TradeDate_Session",
- table: "OptionsDailyTrade");
- migrationBuilder.DropIndex(
- name: "IX_OptionsDailyTrade_OptionsKind_TradeDate_Session_TradeValue",
- table: "OptionsDailyTrade");
- migrationBuilder.DropIndex(
- name: "IX_FuturesDailyTrade_FuturesKind_IsuCode_TradeDate_Session",
- table: "FuturesDailyTrade");
- migrationBuilder.DropIndex(
- name: "IX_FuturesDailyTrade_FuturesKind_TradeDate_Session_TradeValue",
- table: "FuturesDailyTrade");
- migrationBuilder.DropColumn(
- name: "Session",
- table: "OptionsDailyTrade");
- migrationBuilder.DropColumn(
- name: "Session",
- table: "FuturesDailyTrade");
- migrationBuilder.CreateIndex(
- name: "IX_OptionsDailyTrade_OptionsKind_IsuCode_TradeDate",
- table: "OptionsDailyTrade",
- columns: new[] { "OptionsKind", "IsuCode", "TradeDate" },
- unique: true);
- migrationBuilder.CreateIndex(
- name: "IX_OptionsDailyTrade_OptionsKind_TradeDate_TradeValue",
- table: "OptionsDailyTrade",
- columns: new[] { "OptionsKind", "TradeDate", "TradeValue" },
- descending: new[] { false, false, true });
- migrationBuilder.CreateIndex(
- name: "IX_FuturesDailyTrade_FuturesKind_IsuCode_TradeDate",
- table: "FuturesDailyTrade",
- columns: new[] { "FuturesKind", "IsuCode", "TradeDate" },
- unique: true);
- migrationBuilder.CreateIndex(
- name: "IX_FuturesDailyTrade_FuturesKind_TradeDate_TradeValue",
- table: "FuturesDailyTrade",
- columns: new[] { "FuturesKind", "TradeDate", "TradeValue" },
- descending: new[] { false, false, true });
- }
- }
- }
|