createDatabase method
- DatabaseConfig dbConfig,
- ConnectionConfig connConfig, {
- ConnectionConfig? migrationConnConfig,
override
Creates a new DatapodDatabase instance using the provided configuration.
Implementation
@override
Future<DatapodDatabase> createDatabase(
DatabaseConfig dbConfig,
ConnectionConfig connConfig, {
ConnectionConfig? migrationConnConfig,
}) async {
// For SQLite, the 'database' or a plugin specific 'path' would be the file path.
final path = connConfig.database ?? ':memory:';
final db = sqlite.sqlite3.open(path);
final mainConnection = SqliteConnection(db);
SqliteConnection? migrationConnection;
if (migrationConnConfig != null) {
final migrationPath = migrationConnConfig.database ?? path;
// SQLite opens separate connections to the same file fine
final migrationDb = sqlite.sqlite3.open(migrationPath);
migrationConnection = SqliteConnection(migrationDb);
}
return SqliteDatabase(
dbConfig.name,
mainConnection,
migrationConnection: migrationConnection,
);
}