Su problema es que no está nombrando explícitamente sus restricciones. Esto deja que cada base de datos elija un nombre para usted. El truco aquí es nombrar sus restricciones de clave externa explícitamente, cuando crea las tablas reales en MySQL y MariaDB:
CREATE TABLE job_template (
...,
parent_id int NOT NULL,
CONSTRAINT your_constraint FOREIGN KEY fk_name (parent_id)
REFERENCES job_template(id) ON DELETE CASCADE
);
Pero arreglar su situación inmediata requeriría más trabajo. Una opción sería consultar la tabla de esquema de información, para la tabla involucrada, para averiguar los nombres de las restricciones reales:
USE INFORMATION_SCHEMA;
SELECT
TABLE_NAME,
COLUMN_NAME,
CONSTRAINT_NAME,
REFERENCED_TABLE_NAME,
REFERENCED_COLUMN_NAME
FROM KEY_COLUMN_USAGE
WHERE
TABLE_SCHEMA = 'your_db' AND
TABLE_NAME = 'job_template' AND
REFERENCED_COLUMN_NAME IS NOT NULL;
Esto debería devolver un registro para cada columna y restricción. Con esta información, debería poder ejecutar sus declaraciones de modificación actuales.
Esto es bastante fácil de hacer usando una herramienta como Java o algo similar. Si desea hacer esto directamente desde la base de datos, necesitará SQL dinámico, lo que probablemente signifique escribir un procedimiento almacenado.