hereโs what mysqldump gave me without data for HA 0.116.4. you do have to drop the states table 1st so i moved that DDL to the top. I forgot to change auto_increment start value back to 1. I used dbeaver to connect to HA mariadb then ran the DDLโs below and restart HA as I dropped the tables while my automations were still running. But iโm no longer getting constraint error during recorder purge caused by the old self referential Foreign Key Constraint in the states table.
DROP TABLE IF EXISTS `states`;
DROP TABLE IF EXISTS `events`;
CREATE TABLE `events` (
`event_id` int(11) NOT NULL AUTO_INCREMENT,
`event_type` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`event_data` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`origin` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`time_fired` datetime DEFAULT NULL,
`created` datetime DEFAULT NULL,
`context_id` varchar(36) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`context_user_id` varchar(36) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`context_parent_id` char(36) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
PRIMARY KEY (`event_id`),
KEY `ix_events_time_fired` (`time_fired`),
KEY `ix_events_context_user_id` (`context_user_id`),
KEY `ix_events_context_id` (`context_id`),
KEY `ix_events_context_parent_id` (`context_parent_id`),
KEY `ix_events_event_type_time_fired` (`event_type`,`time_fired`)
) ENGINE=InnoDB AUTO_INCREMENT=4788819 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
DROP TABLE IF EXISTS `recorder_runs`;
CREATE TABLE `recorder_runs` (
`run_id` int(11) NOT NULL AUTO_INCREMENT,
`start` datetime DEFAULT NULL,
`end` datetime DEFAULT NULL,
`closed_incorrect` tinyint(1) DEFAULT NULL,
`created` datetime DEFAULT NULL,
PRIMARY KEY (`run_id`),
KEY `ix_recorder_runs_start_end` (`start`,`end`),
CONSTRAINT `CONSTRAINT_1` CHECK (`closed_incorrect` in (0,1))
) ENGINE=InnoDB AUTO_INCREMENT=237 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
DROP TABLE IF EXISTS `schema_changes`;
CREATE TABLE `schema_changes` (
`change_id` int(11) NOT NULL AUTO_INCREMENT,
`schema_version` int(11) DEFAULT NULL,
`changed` datetime DEFAULT NULL,
PRIMARY KEY (`change_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE `states` (
`state_id` int(11) NOT NULL AUTO_INCREMENT,
`domain` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`entity_id` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`state` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`attributes` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`event_id` int(11) DEFAULT NULL,
`last_changed` datetime DEFAULT NULL,
`last_updated` datetime DEFAULT NULL,
`created` datetime DEFAULT NULL,
`context_id` varchar(36) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`context_user_id` varchar(36) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`old_state_id` int(11) DEFAULT NULL,
PRIMARY KEY (`state_id`),
KEY `ix_states_last_updated` (`last_updated`),
KEY `ix_states_entity_id_last_updated` (`entity_id`,`last_updated`),
KEY `ix_states_event_id` (`event_id`),
CONSTRAINT `states_ibfk_1` FOREIGN KEY (`event_id`) REFERENCES `events` (`event_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4604826 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;