# 20260428185239_IncreaseHashLength

- File ID: file:1m4p1ej:20260428185239-increasehashlength-cs
- Path: NexusReader.Data/Migrations/20260428185239_IncreaseHashLength.cs
- Role: database-config
- Layer: data

## Purpose

EF Core migration that updates column types/constraints: increases the ContentHash length and switches certain DateTime columns to use 'timestamp without time zone' (with a Down method to revert).

## Key Details

Primary change: ContentHash column in SemanticKnowledgeCache grows from 64 to 128 characters; several DateTime columns switch between 'timestamp with time zone' and 'timestamp without time zone' depending on Up/Down.

## Symbols

- IncreaseHashLength: EF Core migration that updates column types/constraints: increases the ContentHash length and switches certain DateTime columns to use 'timestamp without time zone' (with a Down method to revert).
- Up(): Apply schema changes: alter several columns (timestamps and the ContentHash length) to new types/constraints.
- Down(): Revert schema changes made in Up: restore previous timestamp types and ContentHash length.
- IncreaseHashLength: EF Core migration class that applies and reverts schema changes related to timestamp types and ContentHash length.

## Dependencies

- No resolved dependencies.

## Calls

- No resolved calls.

## Unresolved References

- interaction-target: migrationBuilder.AlterColumn<DateTime>(name: "CreatedAt", table: "SemanticKnowledgeCache", type: "timestamp without time zone", nullable: false, oldClrType: typeof(DateTime), oldType: "timestamp with time zone");
- interaction-target: migrationBuilder.AlterColumn<string>(name: "ContentHash", table: "SemanticKnowledgeCache", type: "character varying(128)", maxLength: 128, nullable: false, oldClrType: typeof(string), oldType: "character varying(64)", oldMaxLength: 64);
- interaction-target: migrationBuilder.AlterColumn<DateTime>(name: "LastReadDate", table: "Ebooks", type: "timestamp without time zone", nullable: true, oldClrType: typeof(DateTime), oldType: "timestamp with time zone", oldNullable: true);
- interaction-target: migrationBuilder.AlterColumn<DateTime>(name: "AddedDate", table: "Ebooks", type: "timestamp without time zone", nullable: false, oldClrType: typeof(DateTime), oldType: "timestamp with time zone");
- interaction-target: migrationBuilder.AlterColumn<DateTime>(name: "CreatedAt", table: "SemanticKnowledgeCache", type: "timestamp with time zone", nullable: false, oldClrType: typeof(DateTime), oldType: "timestamp without time zone");
- interaction-target: migrationBuilder.AlterColumn<string>(name: "ContentHash", table: "SemanticKnowledgeCache", type: "character varying(64)", maxLength: 64, nullable: false, oldClrType: typeof(string), oldType: "character varying(128)", oldMaxLength: 128);
- interaction-target: migrationBuilder.AlterColumn<DateTime>(name: "LastReadDate", table: "Ebooks", type: "timestamp with time zone", nullable: true, oldClrType: typeof(DateTime), oldType: "timestamp without time zone", oldNullable: true);
- interaction-target: migrationBuilder.AlterColumn<DateTime>(name: "AddedDate", table: "Ebooks", type: "timestamp with time zone", nullable: false, oldClrType: typeof(DateTime), oldType: "timestamp without time zone");

## Coverage

- Symbols: 4
- Executable symbols: 2
- Executable symbols with control flow: 2
- Grounded edges: 4
- Unresolved references: 8
- Control-flow fragments: 2
- Unresolved jumps: 0
- Unsupported constructs: 0
- Control-flow coverage: 100%
- Required diagrams: 2
- Generated diagrams: 2

## Control Flow Fragments

- Up: 6 nodes, 5 edges, 0 jumps, 0 unsupported constructs
- Down: 6 nodes, 5 edges, 0 jumps, 0 unsupported constructs

## Diagrams

### 20260428185239_IncreaseHashLength Neighborhood

```mermaid
flowchart LR
    class_14xe27n_increasehashlength("IncreaseHashLength")
    file_1m4p1ej_20260428185239_increasehashlength_cs("20260428185239_IncreaseHashLength")
    method_1x7fw9j_up[["Up()"]]
    method_pkbr0t_down[["Down()"]]
    type_cn85p2_increasehashlength[/"IncreaseHashLength"/]
```

### 20260428185239_IncreaseHashLength Execution Overview

```mermaid
flowchart TD
    class_14xe27n_increasehashlength("IncreaseHashLength")
    method_1x7fw9j_up[["Up()"]]
    method_pkbr0t_down[["Down()"]]
    unresolved_unresolved_15lpvbv_interaction_target{"Unresolved: migrationBuilder.AlterColumn<DateTime>(name: \\"LastReadDate\\", table: \\"Ebooks\\", type: \\"timestamp with time zone\\", nullable: true, oldClrType: typeof(DateTime), oldType: \\"timestamp without time zone\\", oldNullable: true);"}
    unresolved_unresolved_1liwgtv_interaction_target{"Unresolved: migrationBuilder.AlterColumn<DateTime>(name: \\"LastReadDate\\", table: \\"Ebooks\\", type: \\"timestamp without time zone\\", nullable: true, oldClrType: typeof(DateTime), oldType: \\"timestamp with time zone\\", oldNullable: true);"}
    unresolved_unresolved_1tqhoi7_interaction_target{"Unresolved: migrationBuilder.AlterColumn<string>(name: \\"ContentHash\\", table: \\"SemanticKnowledgeCache\\", type: \\"character varying(64)\\", maxLength: 64, nullable: false, oldClrType: typeof(string), oldType: \\"character varying(128)\\", oldMaxLength: 128);"}
    unresolved_unresolved_1xkic68_interaction_target{"Unresolved: migrationBuilder.AlterColumn<DateTime>(name: \\"CreatedAt\\", table: \\"SemanticKnowledgeCache\\", type: \\"timestamp with time zone\\", nullable: false, oldClrType: typeof(DateTime), oldType: \\"timestamp without time zone\\");"}
    unresolved_unresolved_d95c5g_interaction_target{"Unresolved: migrationBuilder.AlterColumn<DateTime>(name: \\"AddedDate\\", table: \\"Ebooks\\", type: \\"timestamp with time zone\\", nullable: false, oldClrType: typeof(DateTime), oldType: \\"timestamp without time zone\\");"}
    unresolved_unresolved_gp3i3y_interaction_target{"Unresolved: migrationBuilder.AlterColumn<DateTime>(name: \\"AddedDate\\", table: \\"Ebooks\\", type: \\"timestamp without time zone\\", nullable: false, oldClrType: typeof(DateTime), oldType: \\"timestamp with time zone\\");"}
    unresolved_unresolved_hddsir_interaction_target{"Unresolved: migrationBuilder.AlterColumn<string>(name: \\"ContentHash\\", table: \\"SemanticKnowledgeCache\\", type: \\"character varying(128)\\", maxLength: 128, nullable: false, oldClrType: typeof(string), oldType: \\"character varying(64)\\", oldMaxLength: 64);"}
    unresolved_unresolved_raiqd6_interaction_target{"Unresolved: migrationBuilder.AlterColumn<DateTime>(name: \\"CreatedAt\\", table: \\"SemanticKnowledgeCache\\", type: \\"timestamp without time zone\\", nullable: false, oldClrType: typeof(DateTime), oldType: \\"timestamp with time zone\\");"}
    class_14xe27n_increasehashlength -->|contains| method_1x7fw9j_up
    class_14xe27n_increasehashlength -->|contains| method_pkbr0t_down
    class_14xe27n_increasehashlength -->|unresolved interaction| unresolved_unresolved_15lpvbv_interaction_target
    class_14xe27n_increasehashlength -->|unresolved interaction| unresolved_unresolved_1liwgtv_interaction_target
    class_14xe27n_increasehashlength -->|unresolved interaction| unresolved_unresolved_1tqhoi7_interaction_target
    class_14xe27n_increasehashlength -->|unresolved interaction| unresolved_unresolved_1xkic68_interaction_target
    class_14xe27n_increasehashlength -->|unresolved interaction| unresolved_unresolved_d95c5g_interaction_target
    class_14xe27n_increasehashlength -->|unresolved interaction| unresolved_unresolved_gp3i3y_interaction_target
    class_14xe27n_increasehashlength -->|unresolved interaction| unresolved_unresolved_hddsir_interaction_target
    class_14xe27n_increasehashlength -->|unresolved interaction| unresolved_unresolved_raiqd6_interaction_target
```

## Diagram Validation

- Status: pass
