Skip to main content

rfdb 0.0.1 copy "rfdb: ^0.0.1" to clipboard
rfdb: ^0.0.1 copied to clipboard

A Flutter package for simple model-based SQLite database management.

Database Manager #

A Flutter/Dart package for managing SQLite database configuration using model-based definitions.

Features #

  • Configure SQLite database name and version
  • Create database tables using models
  • Update database structure using models
  • Delete database structures using models
  • Define database field types through models
  • Simple database initialization

Installation #

Add the package to your pubspec.yaml:

dependencies:
  rfdb: ^1.0.0

Then run:

flutter pub get

Usage #

1. Create a Database Model #

Create a model class and define the fields that should be stored in the database.

For example, a Meeting model:

class Meeting {
  String? meetingId;
  String? meetingDateTime;
  int? participant;

  Meeting();

  @override
  String toString() {
    return 'Meeting{'
        'meetingId: $meetingId, '
        'meetingDateTime: $meetingDateTime, '
        'participant: $participant'
        '}';
  }

  Map<String, String> getDataTypeMap() {
    return {
      'meetingId': 'String',
      'meetingDateTime': 'String',
      'participant': 'int',
    };
  }
}

The getDataTypeMap() method defines the database field names and their data types.

2. Configure the Database #

Configure the database using DatabaseHelper:

late DatabaseManager databaseManager;

class DatabaseConfig {
  static void configDatabase() {
    DatabaseHelper.databaseName = "test.db";

    DatabaseHelper.databaseVersion = 1;

    // Models used for creating database tables
    DatabaseHelper.dbCreateModels = [
      Meeting(),
    ];

    // Models used for updating database structure
    DatabaseHelper.dbUpdateModels = [];

    // Models used for deleting database structures
    DatabaseHelper.dbDeleteModels = [];

    DatabaseHelper.isAccurateFieldType = true;

    databaseManager = DatabaseManager();
  }
}

3. Initialize the Database #

Initialize the database during application startup:

Future<void> initialSetup() async {
  DatabaseConfig.configDatabase();
}

Then call:

await initialSetup();

For example:

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await initialSetup();

  runApp(const MyApp());
}

Model Field Types #

The getDataTypeMap() method defines the database field types.

For example:

Map<String, String> getDataTypeMap() {
  return {
    'meetingId': 'String',
    'meetingDateTime': 'String',
    'participant': 'int',
  };
}

This represents:

Field Type
meetingId String
meetingDateTime String
participant int

You can create additional models following the same pattern.

Example #

A complete working example is available in the package's example directory.

The example demonstrates:

  1. Creating a Meeting model
  2. Configuring the database
  3. Registering the model for database creation
  4. Initializing the database

Changelog #

See CHANGELOG.md for release history.

License #

This package is licensed under the MIT License.

3
likes
120
points
196
downloads

Documentation

API reference

Publisher

verified publishertechhubhris.scibd.info

Weekly Downloads

A Flutter package for simple model-based SQLite database management.

License

MIT (license)

Dependencies

flutter, path, sqflite

More

Packages that depend on rfdb