From 029ee8e9a8778e588f8ebe4216dec456a0103a04 Mon Sep 17 00:00:00 2001 From: Hyperling Date: Fri, 7 Mar 2025 12:43:26 -0700 Subject: [PATCH] Add DEBUG messages to get methods. Fix the income and asset tables not existing if db upgrade is not run. --- lib/db.dart | 85 ++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 62 insertions(+), 23 deletions(-) diff --git a/lib/db.dart b/lib/db.dart index 3743012..47022d6 100644 --- a/lib/db.dart +++ b/lib/db.dart @@ -3,6 +3,7 @@ // SQLite import 'dart:io'; import 'dart:async'; +import 'package:flutter/material.dart'; import 'package:path/path.dart'; import 'package:path_provider/path_provider.dart'; import 'package:sqflite/sqflite.dart'; @@ -34,6 +35,26 @@ class DatabaseHelper { } Future _onCreate(Database db, int version) async { + debugPrint( + "_onCreate(): version=$version", + ); + _createExpense(db); + _createIncome(db); + _createAsset(db); + } + + Future _onUpgrade(Database db, int previousVersion, int newVersion) async { + debugPrint( + "_onUpgrade(): previousVersion=$previousVersion, newVersion=$newVersion", + ); + // Added in DB version 2. + if (previousVersion < 2 && newVersion >= 2) { + _createIncome(db); + _createAsset(db); + } + } + + void _createExpense(Database db) async { await db.execute(""" CREATE TABLE expense ( id INTEGER PRIMARY KEY @@ -41,41 +62,45 @@ class DatabaseHelper { , cost DOUBLE NOT NULL , frequency TEXT NOT NULL , description TEXT - ) - """); + )"""); } - Future _onUpgrade(Database db, int previousVersion, int newVersion) async { - // Added in DB version 2. - if (previousVersion < 2 && newVersion >= 2) { - await db.execute(""" - CREATE TABLE income - ( id INTEGER PRIMARY KEY - , name TEXT NOT NULL UNIQUE - , revenue DOUBLE NOT NULL - , frequency TEXT NOT NULL - , description TEXT - ) - """); - await db.execute(""" - CREATE TABLE asset - ( id INTEGER PRIMARY KEY - , name TEXT NOT NULL UNIQUE - , amount DOUBLE NOT NULL - , description TEXT - ) - """); - } + void _createIncome(Database db) async { + await db.execute(""" + CREATE TABLE income + ( id INTEGER PRIMARY KEY + , name TEXT NOT NULL UNIQUE + , revenue DOUBLE NOT NULL + , frequency TEXT NOT NULL + , description TEXT + )"""); + } + + void _createAsset(Database db) async { + await db.execute(""" + CREATE TABLE asset + ( id INTEGER PRIMARY KEY + , name TEXT NOT NULL UNIQUE + , amount DOUBLE NOT NULL + , description TEXT + )"""); } /// Expense Section /// Future> getExpenses() async { + debugPrint("getExpenses(): Accessing db."); Database db = await instance.db; + + debugPrint("getExpenses(): Querying table."); var expenses = await db.query("expense", orderBy: "name"); + + debugPrint("getExpenses(): Putting into object list."); List expenseList = expenses.isNotEmpty ? expenses.map((c) => Expense.fromMap(c)).toList() : []; + + debugPrint("getExpenses(): Returning!"); return expenseList; } @@ -121,11 +146,18 @@ class DatabaseHelper { /// Income Section /// Future> getIncomes() async { + debugPrint("getIncomes(): Accessing db."); Database db = await instance.db; + + debugPrint("getIncomes(): Querying table."); var incomes = await db.query("income", orderBy: "name"); + + debugPrint("getIncomes(): Putting into object list."); List incomeList = incomes.isNotEmpty ? incomes.map((c) => Income.fromMap(c)).toList() : []; + + debugPrint("getIncomes(): Returning!"); return incomeList; } @@ -169,10 +201,17 @@ class DatabaseHelper { /// /// Liquid Asset Section Future> getAssets() async { + debugPrint("getAssets(): Accessing db."); Database db = await instance.db; + + debugPrint("getAssets(): Querying table."); var assets = await db.query("asset", orderBy: "name"); + + debugPrint("getAssets(): Putting into object list."); List assetList = assets.isNotEmpty ? assets.map((c) => Asset.fromMap(c)).toList() : []; + + debugPrint("getAssets(): Returning!"); return assetList; }