137 lines
6.1 KiB
SQL
137 lines
6.1 KiB
SQL
/* ───────────────────────── user_profile ───────────────────────── */
|
||
ALTER TABLE user_profile
|
||
MODIFY firstname VARCHAR(400),
|
||
MODIFY lastname VARCHAR(400),
|
||
MODIFY email VARCHAR(512),
|
||
MODIFY phone_e164 VARCHAR(128),
|
||
MODIFY zipcode VARCHAR(64),
|
||
MODIFY stripe_customer_id VARCHAR(128),
|
||
MODIFY interest_inventory_answers MEDIUMTEXT,
|
||
MODIFY riasec_scores VARCHAR(768),
|
||
MODIFY career_priorities MEDIUMTEXT,
|
||
MODIFY career_list MEDIUMTEXT;
|
||
|
||
/* ───────────────────────── financial_profiles ─────────────────── */
|
||
ALTER TABLE financial_profiles
|
||
MODIFY current_salary VARCHAR(128),
|
||
MODIFY additional_income VARCHAR(128),
|
||
MODIFY monthly_expenses VARCHAR(128),
|
||
MODIFY monthly_debt_payments VARCHAR(128),
|
||
MODIFY retirement_savings VARCHAR(128),
|
||
MODIFY emergency_fund VARCHAR(128),
|
||
MODIFY retirement_contribution VARCHAR(128),
|
||
MODIFY emergency_contribution VARCHAR(128),
|
||
MODIFY extra_cash_emergency_pct VARCHAR(64),
|
||
MODIFY extra_cash_retirement_pct VARCHAR(64);
|
||
|
||
/* ───────────────────────── career_profiles ────────────────────── */
|
||
ALTER TABLE career_profiles
|
||
MODIFY planned_monthly_expenses VARCHAR(128),
|
||
MODIFY planned_monthly_debt_payments VARCHAR(128),
|
||
MODIFY planned_monthly_retirement_contribution VARCHAR(128),
|
||
MODIFY planned_monthly_emergency_contribution VARCHAR(128),
|
||
MODIFY planned_surplus_emergency_pct VARCHAR(64),
|
||
MODIFY planned_surplus_retirement_pct VARCHAR(64),
|
||
MODIFY planned_additional_income VARCHAR(128),
|
||
MODIFY career_goals MEDIUMTEXT,
|
||
MODIFY desired_retirement_income_monthly VARCHAR(128);
|
||
|
||
/* ────────────────────────────────────────────────────────────────
|
||
college_profiles – migrate for encrypted VARCHAR columns
|
||
────────────────────────────────────────────────────────────────
|
||
Adjust index names below if SHOW INDEX tells you they differ */
|
||
|
||
ALTER TABLE user_profile
|
||
ADD COLUMN stripe_customer_id_hash CHAR(64) NULL,
|
||
ADD INDEX idx_customer_hash (stripe_customer_id_hash);
|
||
|
||
/*───────────────────
|
||
STEP 1 – drop old indexes
|
||
───────────────────*/
|
||
SHOW INDEX FROM college_profiles\G
|
||
|
||
ALTER TABLE college_profiles
|
||
DROP FOREIGN KEY fk_college_profiles_user,
|
||
DROP FOREIGN KEY fk_college_profiles_career;
|
||
|
||
ALTER TABLE college_profiles
|
||
DROP INDEX user_id;
|
||
|
||
/*───────────────────
|
||
STEP 2 – widen columns
|
||
(512‑byte text columns ≈ 684 B once encrypted/Base64‑encoded)
|
||
───────────────────*/
|
||
ALTER TABLE college_profiles
|
||
MODIFY selected_school VARCHAR(512),
|
||
MODIFY selected_program VARCHAR(512),
|
||
MODIFY annual_financial_aid VARCHAR(128),
|
||
MODIFY existing_college_debt VARCHAR(128),
|
||
MODIFY tuition VARCHAR(128),
|
||
MODIFY tuition_paid VARCHAR(128),
|
||
MODIFY loan_deferral_until_graduation VARCHAR(64),
|
||
MODIFY loan_term VARCHAR(64),
|
||
MODIFY interest_rate VARCHAR(64),
|
||
MODIFY extra_payment VARCHAR(128),
|
||
MODIFY expected_salary VARCHAR(128);
|
||
|
||
ALTER TABLE college_profiles
|
||
ADD UNIQUE KEY ux_user_school_prog (
|
||
user_id,
|
||
career_profile_id,
|
||
selected_school(192),
|
||
selected_program(192),
|
||
program_type
|
||
);
|
||
|
||
ALTER TABLE college_profiles
|
||
ADD CONSTRAINT fk_college_profiles_user
|
||
FOREIGN KEY (user_id) REFERENCES user_profile(id)
|
||
ON DELETE CASCADE ON UPDATE CASCADE,
|
||
ADD CONSTRAINT fk_college_profiles_career
|
||
FOREIGN KEY (career_profile_id) REFERENCES career_profiles(id)
|
||
ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
||
ALTER TABLE college_profiles
|
||
ADD INDEX idx_college_user (user_id),
|
||
ADD INDEX idx_college_career (career_profile_id);
|
||
|
||
/*───────────────────
|
||
STEP 3 – recreate indexes with safe prefixes (optional)
|
||
If you *don’t* need to query by these columns any more,
|
||
just comment‑out or delete this block.
|
||
───────────────────*/
|
||
CREATE INDEX idx_school ON college_profiles (selected_school(191));
|
||
CREATE INDEX idx_program ON college_profiles (selected_program(191));
|
||
CREATE INDEX idx_school_prog ON college_profiles (selected_school(191),
|
||
selected_program(191));
|
||
|
||
/* ───────────────────────── misc small tables ──────────────────── */
|
||
ALTER TABLE milestones
|
||
MODIFY description MEDIUMTEXT;
|
||
|
||
ALTER TABLE tasks
|
||
MODIFY description MEDIUMTEXT;
|
||
|
||
ALTER TABLE reminders
|
||
MODIFY phone_e164 VARCHAR(128),
|
||
MODIFY message_body MEDIUMTEXT;
|
||
|
||
ALTER TABLE milestone_impacts
|
||
MODIFY amount VARCHAR(128),
|
||
MODIFY impact_type VARCHAR(64);
|
||
|
||
ALTER TABLE ai_risk_analysis
|
||
MODIFY reasoning MEDIUMTEXT,
|
||
MODIFY raw_prompt MEDIUMTEXT;
|
||
|
||
ALTER TABLE ai_generated_ksa
|
||
MODIFY knowledge_json MEDIUMTEXT,
|
||
MODIFY abilities_json MEDIUMTEXT,
|
||
MODIFY skills_json MEDIUMTEXT;
|
||
|
||
ALTER TABLE ai_suggested_milestones
|
||
MODIFY suggestion_text MEDIUMTEXT;
|
||
|
||
ALTER TABLE context_cache
|
||
MODIFY ctx_text MEDIUMTEXT;
|