家計簿アプリ作成シリーズの第90回です。前回、アプリ側のテーブルに外部キー制約とON DELETE CASCADEを付け、アカウント削除から手動の削除処理を取り除きました。今回はこれを本番環境へ反映します。テーブルを作り直すマイグレーション …
家計簿アプリ作成シリーズの第89回です。お題85のリストア、お題87のアカウント削除と、「後から追加したテーブルが削除処理から漏れる」問題が続けて見つかりました。今回は、各テーブルのuserIdにuser.idへの外部キー制約とON …
家計簿アプリ作成シリーズの第88回です。前回のE2Eテスト導入の途中で、アプリ側にもいくつか修正が入ったので、本番環境へ反映します。
家計簿アプリ作成シリーズの第87回です。お題59でVitestによるユニットテストを導入しましたが、あれはcalculateTotalsのような関数単体の検証でした。今回はPlaywrightを導入し、実際にブラウザを動かして「サインアップ …
家計簿アプリ作成シリーズの第86回です。全データのバックアップ・リストア機能がまとまったので、Cloudflare Pagesへ再デプロイします。
家計簿アプリ作成シリーズの第85回です。これまでのCSVエクスポート/インポートは取引データのみが対象でしたが、今回はカテゴリ・予算・定期収支・テンプレートなどアプリの全データをJSON形式で一括バックアップ・リストアできる機能を実装しまし …
家計簿アプリ作成シリーズの第84回です。検索の全角・半角統一機能がまとまったので、Cloudflare Pagesへ再デプロイします。
家計簿アプリ作成シリーズの第83回です。以前(お題63)のハイライト機能実装時に「全角/半角の違いまでは対応しない」と割り切っていた部分に、今回対応します。
家計簿アプリ作成シリーズの第82回です。月次サマリーメールの自動送信機能がまとまったので、Cloudflare Pagesへ再デプロイします。今回はCron Triggerという新しい種類の設定を含むデプロイでした。
家計簿アプリ作成シリーズの第81回です。前回はCloudflare Cron Triggersの基礎知識をまとめました。今回はSvelteKitプロジェクトにscheduledハンドラを組み込み、月次サマリーメールを実際に送信するまでの実装 …