# Set some variables for the DB names so you don't have to retype them.
SET @prev='my_local_db';
SET @cur='the_dev_db';
# Check for variables that are new.
SET @q = CONCAT(
'SELECT
*
FROM ', @cur, '.variable
LEFT JOIN ', @prev , '.variable
ON ', @prev , '.variable.name = ', @cur, '.variable.name
WHERE ', @prev , '.variable.name IS NULL');
PREPARE qry FROM @q;
EXECUTE qry;
# Check for variables that are different.
SET @q = CONCAT(
'SELECT
', @cur, '.variable.name AS name,
', @prev , '.variable.value AS old_value,
', @cur, '.variable.value AS new_value
FROM ', @cur, '.variable
INNER JOIN ', @prev , '.variable
ON ', @prev , '.variable.name = ', @cur, '.variable.name
WHERE ', @cur, '.variable.value != ', @prev , '.variable.value');
PREPARE qry FROM @q;
EXECUTE qry;
# Check for new system rows
SET @q = CONCAT(
'SELECT
*
FROM ', @cur, '.system
LEFT JOIN ', @prev , '.system
ON ', @prev , '.system.name = ', @cur, '.system.name
WHERE ', @prev , '.system.name iS NULL');
PREPARE qry FROM @q;
EXECUTE qry;
# Check for system rows that are different
SET @q = CONCAT(
'SELECT
', @cur, '.system.name AS name,
', @prev , '.system.status AS old_status,
', @cur, '.system.status AS new_status,
', @prev , '.system.schema_version AS old_shema_version,
', @cur, '.system.schema_version AS new_schema_version,
', @prev , '.system.info AS old_info,
', @cur, '.system.info AS new_info
FROM ', @cur, '.system
INNER JOIN ', @prev , '.system
ON ', @prev , '.system.name = ', @cur, '.system.name
WHERE ', @cur, '.system.info != ', @prev , '.system.info
OR ', @cur, '.system.status != ', @prev , '.system.status
OR ', @cur, '.system.schema_version != ', @prev , '.system.schema_version');
PREPARE qry FROM @q;
EXECUTE qry;
# Check for field_configs that are different.
SET @q = CONCAT(
'SELECT
', @cur, '.field_config.field_name,
', @prev , '.field_config.data AS old_data,
', @cur, '.field_config.data AS new_data
FROM ', @cur, '.field_config
INNER JOIN ', @prev , '.field_config
ON ', @prev , '.field_config.field_name = ', @cur, '.field_config.field_name
WHERE ', @cur, '.field_config.data != ', @prev , '.field_config.data');
PREPARE qry FROM @q;
EXECUTE qry;
DEALLOCATE PREPARE qry;