Persistência de Dados com SQLite em Flutter: Migração de Dados
Uma parte crucial do desenvolvimento de aplicativos é a gestão de dados. Neste capítulo do curso, vamos explorar como implementar a persistência de dados usando SQLite em Flutter. SQLite é uma biblioteca de banco de dados SQL embutida em C que fornece um armazenamento local no dispositivo para seu aplicativo. Vamos também abordar um aspecto importante da gestão de dados: a migração de dados.
SQLite em Flutter
O SQLite é um banco de dados embutido que é muito fácil de usar. Ele não requer um processo de servidor separado e permite acessar o banco de dados usando uma interface não padrão baseada em funções. Para usar o SQLite em Flutter, precisamos adicionar a dependência 'sqflite' em nosso arquivo pubspec.yaml.
dependencies: flutter: sdk: flutter sqflite: ^1.3.0
Após adicionar a dependência, podemos importar o pacote sqflite em nosso arquivo Dart.
import 'package:sqflite/sqflite.dart';
Criação de Banco de Dados e Tabelas
Para criar um banco de dados, usamos a função openDatabase e passamos o caminho do banco de dados como um argumento. Se o banco de dados não existir, ele será criado. Podemos também definir a versão do banco de dados e implementar a função onCreate para criar tabelas.
Database database = await openDatabase( path, version: 1, onCreate: (Database db, int version) async { await db.execute('CREATE TABLE my_table (id INTEGER PRIMARY KEY, name TEXT)'); }, );
Migração de Dados
A migração de dados é um processo vital para manter a integridade dos dados quando atualizamos a estrutura do banco de dados. Quando alteramos a estrutura do banco de dados, como adicionar uma nova coluna ou alterar o tipo de dados de uma coluna, precisamos migrar os dados existentes para a nova estrutura.
Em SQLite, podemos usar a função onUpgrade para lidar com a migração de dados. A função onUpgrade será chamada quando a versão do banco de dados atual for maior que a versão anterior. Dentro desta função, podemos executar comandos SQL para alterar a estrutura do banco de dados.
Database database = await openDatabase( path, version: 2, onUpgrade: (Database db, int oldVersion, int newVersion) async { if (oldVersion < 2) { await db.execute('ALTER TABLE my_table ADD COLUMN age INTEGER'); } }, );
Conclusão
SQLite é uma excelente opção para armazenar dados localmente em um aplicativo Flutter. Ele oferece uma interface fácil de usar para gerenciar dados e suporta a migração de dados para manter a integridade dos dados. Ao usar SQLite em Flutter, podemos criar aplicativos mais robustos e confiáveis.
Este capítulo abordou os conceitos básicos de persistência de dados com SQLite em Flutter e migração de dados. No entanto, há muito mais para aprender sobre SQLite, como transações, consultas complexas e otimização de desempenho. Esperamos que este capítulo tenha fornecido uma base sólida para explorar mais sobre SQLite em Flutter.