From 456c3c5f47890026625c3312cf0065de57e7273d Mon Sep 17 00:00:00 2001 From: Dries Peeters Date: Sat, 1 Nov 2025 10:26:45 +0100 Subject: [PATCH] Hopefully fixes it. --- migrations/versions/037_advanced_expenses.py | 9 +++++++-- tests/test_i18n.py | 4 +++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/migrations/versions/037_advanced_expenses.py b/migrations/versions/037_advanced_expenses.py index 3c89799..08cb7f5 100644 --- a/migrations/versions/037_advanced_expenses.py +++ b/migrations/versions/037_advanced_expenses.py @@ -175,7 +175,12 @@ def upgrade(): op.create_foreign_key('fk_per_diems_expense', 'per_diems', 'expenses', ['expense_id'], ['id']) # Insert default expense categories (idempotent) - if 'expense_categories' in existing_tables: + # Re-check table existence since tables may have been created in this migration + conn = op.get_bind() + inspector = inspect(conn) + current_tables = inspector.get_table_names() + + if 'expense_categories' in current_tables: # Use INSERT OR IGNORE for SQLite compatibility op.execute(""" INSERT OR IGNORE INTO expense_categories (name, code, color, icon, requires_receipt, requires_approval, is_active) @@ -190,7 +195,7 @@ def upgrade(): """) # Insert default per diem rates (idempotent) - if 'per_diem_rates' in existing_tables: + if 'per_diem_rates' in current_tables: op.execute(""" INSERT OR IGNORE INTO per_diem_rates (country_code, location, rate_per_day, breakfast_deduction, lunch_deduction, dinner_deduction, valid_from, currency_code, is_active) VALUES diff --git a/tests/test_i18n.py b/tests/test_i18n.py index 51bd2c3..1bd9dfb 100644 --- a/tests/test_i18n.py +++ b/tests/test_i18n.py @@ -338,7 +338,9 @@ def test_user(client): db.session.add(user) db.session.commit() yield user - # Cleanup + # Cleanup - delete related activities first to avoid constraint violations + from app.models import Activity + Activity.query.filter_by(user_id=user.id).delete() db.session.delete(user) db.session.commit()