[
  {
    "type": "alter_table",
    "description": "Drop incorrect FK on userStoreAssignments that references uf_user instead of users",
    "database": "kiosk_users",
    "check_query": "SELECT CONSTRAINT_NAME FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = 'kiosk_users' AND TABLE_NAME = 'userStoreAssignments' AND CONSTRAINT_NAME = 'fk_userStoreAssignments_user' AND REFERENCED_TABLE_NAME = 'uf_user'",
    "sql": "ALTER TABLE `userStoreAssignments` DROP FOREIGN KEY `fk_userStoreAssignments_user`"
  },
  {
    "type": "alter_table",
    "description": "Change userStoreAssignments.userId to unsigned int to match users.id type",
    "database": "kiosk_users",
    "check_query": "SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'kiosk_users' AND TABLE_NAME = 'userStoreAssignments' AND COLUMN_NAME = 'userId' AND COLUMN_TYPE = 'int(10) unsigned'",
    "sql": "ALTER TABLE `userStoreAssignments` MODIFY `userId` int(10) unsigned NOT NULL COMMENT 'FK to users.id'"
  },
  {
    "type": "alter_table",
    "description": "Add correct FK on userStoreAssignments referencing users table instead of uf_user",
    "database": "kiosk_users",
    "check_query": "SELECT CONSTRAINT_NAME FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = 'kiosk_users' AND TABLE_NAME = 'userStoreAssignments' AND CONSTRAINT_NAME = 'fk_userStoreAssignments_user' AND REFERENCED_TABLE_NAME = 'users'",
    "sql": "ALTER TABLE `userStoreAssignments` ADD CONSTRAINT `fk_userStoreAssignments_user` FOREIGN KEY (`userId`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE"
  }
]
