3 Commits

Author SHA1 Message Date
claude e14a6a0f69 refactor(migrations): extract schema constant for clarity
Build and Push Docker Images Staging / build (push) Successful in 8m22s
2026-05-29 10:16:18 +03:00
claude 181a0b23b5 fix(email-data): update migration files to use MigrationConstants.SchemaName
Fix schema name references in migration Designer.cs and ModelSnapshot files.
Previously these files contained hardcoded 'emailApi' schema name instead of
using MigrationConstants.SchemaName constant. This was causing EF Core to
detect pending model changes and fail migrations.

Changes:
- 20260528100000_CreateEmailTemplates.Designer.cs: Use MigrationConstants.SchemaName
- 20260528130652_SeedEmailTemplates.Designer.cs: Use MigrationConstants.SchemaName
- EmailApiDbContextModelSnapshot.cs: Use MigrationConstants.SchemaName and updated namespace

Also updated entity namespace references from EmailApi.Data to Email.Data.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-29 10:11:31 +03:00
claude 2b43ec5984 fix(docker): update Dockerfile references from email-api-data to email-data
Update all Dockerfile COPY commands to reference the renamed email-data project
instead of email-api-data. This resolves Docker build failures introduced by the
email-api-data → email-data rename.

- Apis/api/Dockerfile: Update lines 8 and 20
- Apis/email-api/Dockerfile: Update lines 6 and 17
- Jobs/cv-search-job/Dockerfile: Update lines 10 and 23

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-29 10:05:35 +03:00
7 changed files with 17 additions and 16 deletions
+2 -2
View File
@@ -5,7 +5,7 @@ WORKDIR /src
COPY Directory.Packages.props ./
COPY Apis/api/api.csproj Apis/api/
COPY Apis/api-models/api-models.csproj Apis/api-models/
COPY Apis/email-api-data/email-api-data.csproj Apis/email-api-data/
COPY Apis/email-data/email-data.csproj Apis/email-data/
COPY Apis/email-api-models/email-api-models.csproj Apis/email-api-models/
COPY Apis/cv-matcher-api-models/cv-matcher-api-models.csproj Apis/cv-matcher-api-models/
COPY Apis/common/common.csproj Apis/common/
@@ -17,7 +17,7 @@ RUN dotnet restore Apis/api/api.csproj
COPY Apis/api/ Apis/api/
COPY Apis/api-models/ Apis/api-models/
COPY Apis/email-api-data/ Apis/email-api-data/
COPY Apis/email-data/ Apis/email-data/
COPY Apis/email-api-models/ Apis/email-api-models/
COPY Apis/cv-matcher-api-models/ Apis/cv-matcher-api-models/
COPY Apis/common/ Apis/common/
+2 -2
View File
@@ -3,7 +3,7 @@ ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY Apis/email-api/email-api.csproj Apis/email-api/
COPY Apis/email-api-data/email-api-data.csproj Apis/email-api-data/
COPY Apis/email-data/email-data.csproj Apis/email-data/
COPY Apis/email-api-models/email-api-models.csproj Apis/email-api-models/
COPY Apis/api-models/api-models.csproj Apis/api-models/
COPY Apis/common/common.csproj Apis/common/
@@ -14,7 +14,7 @@ COPY Directory.Packages.props ./
RUN dotnet restore Apis/email-api/email-api.csproj
COPY Apis/email-api/ Apis/email-api/
COPY Apis/email-api-data/ Apis/email-api-data/
COPY Apis/email-data/ Apis/email-data/
COPY Apis/email-api-models/ Apis/email-api-models/
COPY Apis/api-models/ Apis/api-models/
COPY Apis/common/ Apis/common/
@@ -20,13 +20,13 @@ namespace Email.Data.Migrations
{
#pragma warning disable 612, 618
modelBuilder
.HasDefaultSchema("emailApi")
.HasDefaultSchema(MigrationConstants.SchemaName)
.HasAnnotation("ProductVersion", "10.0.7")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("EmailApi.Data.Entities.EmailTemplateEntity", b =>
modelBuilder.Entity("Email.Data.Entities.EmailTemplateEntity", b =>
{
b.Property<string>("Key")
.HasMaxLength(128)
@@ -61,7 +61,7 @@ namespace Email.Data.Migrations
b.HasKey("Key", "Language");
b.ToTable("EmailTemplates", "emailApi");
b.ToTable("EmailTemplates", MigrationConstants.SchemaName);
});
#pragma warning restore 612, 618
}
@@ -20,13 +20,13 @@ namespace Email.Data.Migrations
{
#pragma warning disable 612, 618
modelBuilder
.HasDefaultSchema("emailApi")
.HasDefaultSchema(MigrationConstants.SchemaName)
.HasAnnotation("ProductVersion", "10.0.7")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("EmailApi.Data.Entities.EmailTemplateEntity", b =>
modelBuilder.Entity("Email.Data.Entities.EmailTemplateEntity", b =>
{
b.Property<string>("Key")
.HasMaxLength(128)
@@ -61,7 +61,7 @@ namespace Email.Data.Migrations
b.HasKey("Key", "Language");
b.ToTable("EmailTemplates", "emailApi");
b.ToTable("EmailTemplates", MigrationConstants.SchemaName);
});
#pragma warning restore 612, 618
}
@@ -27,12 +27,13 @@ namespace Email.Data.Migrations
private static void Seed(MigrationBuilder m)
{
const string op = "contact@myai.ro";
const string schema = MigrationConstants.SchemaName;
void Row(string key, string lang, string value, string description = "", string operatorCopy = "")
=> m.InsertData("EmailTemplates",
["Key", "Language", "Value", "Description", "OperatorCopy"],
[key, lang, value, description, operatorCopy],
MigrationConstants.SchemaName);
schema);
// ── HTML shell (no operator copy — these are layout fragments, not addressable emails) ──
Row("email.html-shell.start", "*",
@@ -17,13 +17,13 @@ namespace Email.Data.Migrations
{
#pragma warning disable 612, 618
modelBuilder
.HasDefaultSchema("emailApi")
.HasDefaultSchema(MigrationConstants.SchemaName)
.HasAnnotation("ProductVersion", "10.0.7")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("EmailApi.Data.Entities.EmailTemplateEntity", b =>
modelBuilder.Entity("Email.Data.Entities.EmailTemplateEntity", b =>
{
b.Property<string>("Key")
.HasMaxLength(128)
@@ -58,7 +58,7 @@ namespace Email.Data.Migrations
b.HasKey("Key", "Language");
b.ToTable("EmailTemplates", "emailApi");
b.ToTable("EmailTemplates", MigrationConstants.SchemaName);
});
#pragma warning restore 612, 618
}
+2 -2
View File
@@ -7,7 +7,7 @@ COPY Jobs/cv-search-job/cv-search-job.csproj Jobs/cv-search-job/
COPY Jobs/job-scheduler/job-scheduler.csproj Jobs/job-scheduler/
COPY Apis/cv-search-data/cv-search-data.csproj Apis/cv-search-data/
COPY Apis/cv-matcher-api-models/cv-matcher-api-models.csproj Apis/cv-matcher-api-models/
COPY Apis/email-api-data/email-api-data.csproj Apis/email-api-data/
COPY Apis/email-data/email-data.csproj Apis/email-data/
COPY Apis/email-api-models/email-api-models.csproj Apis/email-api-models/
COPY Apis/common/common.csproj Apis/common/
COPY Apis/myai-data/myai-data.csproj Apis/myai-data/
@@ -20,7 +20,7 @@ COPY Jobs/cv-search-job/ Jobs/cv-search-job/
COPY Jobs/job-scheduler/ Jobs/job-scheduler/
COPY Apis/cv-search-data/ Apis/cv-search-data/
COPY Apis/cv-matcher-api-models/ Apis/cv-matcher-api-models/
COPY Apis/email-api-data/ Apis/email-api-data/
COPY Apis/email-data/ Apis/email-data/
COPY Apis/email-api-models/ Apis/email-api-models/
COPY Apis/common/ Apis/common/
COPY Apis/myai-data/ Apis/myai-data/