Repair MySQL auto increment drift for core tables
This commit is contained in:
@@ -861,6 +861,42 @@ CREATE TABLE IF NOT EXISTS "TailoredCvDrafts" (
|
|||||||
ddlCmd.ExecuteNonQuery();
|
ddlCmd.ExecuteNonQuery();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool MySqlIntPrimaryKeyIsAutoIncrement(MySqlConnection c, string table, string column)
|
||||||
|
{
|
||||||
|
using var cmd = c.CreateCommand();
|
||||||
|
cmd.CommandText = @"SELECT EXTRA
|
||||||
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
WHERE TABLE_SCHEMA = @schema AND TABLE_NAME = @table AND COLUMN_NAME = @column
|
||||||
|
LIMIT 1;";
|
||||||
|
cmd.Parameters.AddWithValue("@schema", c.Database);
|
||||||
|
cmd.Parameters.AddWithValue("@table", table);
|
||||||
|
cmd.Parameters.AddWithValue("@column", column);
|
||||||
|
var extra = cmd.ExecuteScalar()?.ToString() ?? string.Empty;
|
||||||
|
return extra.Contains("auto_increment", StringComparison.OrdinalIgnoreCase);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void EnsureMySqlAutoIncrementPrimaryKey(MySqlConnection c, string table, string column)
|
||||||
|
{
|
||||||
|
if (!HasMySqlTable(c, table) || !MySqlColumnExists(c, table, column) || MySqlIntPrimaryKeyIsAutoIncrement(c, table, column))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
using var cmd = c.CreateCommand();
|
||||||
|
cmd.CommandText = $"ALTER TABLE `{table}` MODIFY COLUMN `{column}` int NOT NULL AUTO_INCREMENT;";
|
||||||
|
cmd.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
|
||||||
|
EnsureMySqlAutoIncrementPrimaryKey(conn, "Companies", "Id");
|
||||||
|
EnsureMySqlAutoIncrementPrimaryKey(conn, "JobApplications", "Id");
|
||||||
|
EnsureMySqlAutoIncrementPrimaryKey(conn, "Correspondences", "Id");
|
||||||
|
EnsureMySqlAutoIncrementPrimaryKey(conn, "Attachments", "Id");
|
||||||
|
EnsureMySqlAutoIncrementPrimaryKey(conn, "JobEvents", "Id");
|
||||||
|
EnsureMySqlAutoIncrementPrimaryKey(conn, "GmailConnections", "Id");
|
||||||
|
EnsureMySqlAutoIncrementPrimaryKey(conn, "CvUploadArtifacts", "Id");
|
||||||
|
EnsureMySqlAutoIncrementPrimaryKey(conn, "CvExtractionRuns", "Id");
|
||||||
|
EnsureMySqlAutoIncrementPrimaryKey(conn, "TailoredCvDrafts", "Id");
|
||||||
|
|
||||||
EnsureMySqlColumn(conn, "Companies", "OwnerUserId", "ALTER TABLE `Companies` ADD COLUMN `OwnerUserId` varchar(255) NULL;");
|
EnsureMySqlColumn(conn, "Companies", "OwnerUserId", "ALTER TABLE `Companies` ADD COLUMN `OwnerUserId` varchar(255) NULL;");
|
||||||
EnsureMySqlColumn(conn, "Companies", "Source", "ALTER TABLE `Companies` ADD COLUMN `Source` longtext NULL;");
|
EnsureMySqlColumn(conn, "Companies", "Source", "ALTER TABLE `Companies` ADD COLUMN `Source` longtext NULL;");
|
||||||
EnsureMySqlColumn(conn, "Companies", "RecruiterName", "ALTER TABLE `Companies` ADD COLUMN `RecruiterName` longtext NULL;");
|
EnsureMySqlColumn(conn, "Companies", "RecruiterName", "ALTER TABLE `Companies` ADD COLUMN `RecruiterName` longtext NULL;");
|
||||||
|
|||||||
Reference in New Issue
Block a user