Invoke-LocalMySql$healthSettings'SELECT 1 FROM system_users LIMIT 1;'$databaseName|Out-Null
$memberExists=[int]@(Invoke-LocalMySql$healthSettings"SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA='$databaseName' AND TABLE_NAME='member_user';")[0]
if($memberExists-gt0){
$uniqueIndex=[int]@(Invoke-LocalMySql$healthSettings"SELECT COUNT(*) FROM information_schema.STATISTICS WHERE TABLE_SCHEMA='$databaseName' AND TABLE_NAME='member_user' AND INDEX_NAME='uk_member_mobile_tenant' AND NON_UNIQUE=0;")[0]
if($uniqueIndex-ne2){
throw'Existing member_user lacks the verified tenant/mobile unique index. Review duplicates and the existing schema before adding it; this initializer will not rewrite an existing table.'
Invoke-LocalMySql$healthSettings"SELECT table_name FROM information_schema.TABLES WHERE TABLE_SCHEMA='$databaseName' AND TABLE_NAME LIKE 'health_%' ORDER BY table_name;"$databaseName
$healthTableCount=[int]@(Invoke-LocalMySql$healthSettings"SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA='$databaseName' AND TABLE_NAME IN ('health_identity','health_elderly_profile','health_volunteer_profile','health_family_relation');")[0]
$healthPermissionCount=[int]@(Invoke-LocalMySql$healthSettings"SELECT COUNT(*) FROM system_menu WHERE permission IN ('health:identity:query','health:identity:create','health:identity:update','health:identity:audit','health:identity:update-status','health:family-relation:query','health:family-relation:create','health:family-relation:review','health:family-relation:revoke') AND deleted=b'0';"$databaseName)[0]
$basicInfoColumnCount=[int]@(Invoke-LocalMySql$healthSettings"SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='$databaseName' AND ((TABLE_NAME='health_identity' AND COLUMN_NAME IN ('id_card','ethnicity','has_wechat')) OR (TABLE_NAME='health_elderly_profile' AND COLUMN_NAME IN ('collection_step','special_case')));")[0]
$socialColumnCount=[int]@(Invoke-LocalMySql$healthSettings"SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='$databaseName' AND TABLE_NAME='health_elderly_profile' AND COLUMN_NAME IN ('marital_status','native_place','residence_area','residence_address','residence_type','living_status','household_type','education_level','occupation','elderly_university');")[0]
$supportTableCount=[int]@(Invoke-LocalMySql$healthSettings"SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA='$databaseName' AND TABLE_NAME IN ('health_collection_draft','health_region_altitude','health_elderly_spouse');")[0]
$remainingColumnCount=[int]@(Invoke-LocalMySql$healthSettings"SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='$databaseName' AND TABLE_NAME='health_elderly_profile' AND COLUMN_NAME IN ('insurance_type','income_range','medical_insurance_number','care_level','disabled','disability_type','disability_reason','chronic_disease_status','chronic_diseases','father_alive','mother_alive','father_death_reason','mother_death_reason','father_death_reason_detail','mother_death_reason_detail','emergency_contacts','collector_id','collector_type','collect_time','collection_completed_time','consent_confirmed','consent_confirm_time','consent_collector_id');")[0]
if($healthTableCount-ne4-or$healthPermissionCount-ne9-or$basicInfoColumnCount-ne5-or$socialColumnCount-ne10-or$supportTableCount-ne3-or$remainingColumnCount-ne23){throw"Health schema or menus were not initialized completely (step-one: $basicInfoColumnCount, step-two: $socialColumnCount, support tables: $supportTableCount, remaining collection columns: $remainingColumnCount)."}