Actualizacion de mejoras
This commit is contained in:
@@ -12,7 +12,7 @@ class DbHelper {
|
||||
|
||||
static Future<Database> _initDb() async {
|
||||
final path = join(await getDatabasesPath(), 'celaya_v3.db');
|
||||
return openDatabase(path, version: 2,
|
||||
return openDatabase(path, version: 3,
|
||||
onCreate: _onCreate, onUpgrade: _onUpgrade);
|
||||
}
|
||||
|
||||
@@ -108,19 +108,27 @@ class DbHelper {
|
||||
|
||||
// Migración incremental — se ejecuta al actualizar la app
|
||||
static Future<void> _onUpgrade(Database db, int oldV, int newV) async {
|
||||
// Agregar columnas/tablas que pueden faltar en instalaciones anteriores
|
||||
final helpers = [
|
||||
// foto_path en reportes
|
||||
// Lista de migraciones seguras (todas usan IF NOT EXISTS o ignoran errores)
|
||||
final sqls = [
|
||||
// Columnas que pueden faltar
|
||||
"ALTER TABLE reportes ADD COLUMN foto_path TEXT",
|
||||
// Tablas nuevas (IF NOT EXISTS para no fallar si ya existen)
|
||||
// Tabla reviews (puede no existir en instalaciones viejas)
|
||||
'''CREATE TABLE IF NOT EXISTS reviews(
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user_id INTEGER NOT NULL, colonia TEXT NOT NULL,
|
||||
route_id TEXT NOT NULL, estrellas INTEGER NOT NULL,
|
||||
comentario TEXT NOT NULL, fecha TEXT NOT NULL,
|
||||
nombre_usuario TEXT DEFAULT 'Ciudadano')''',
|
||||
// Tabla user_meta
|
||||
'''CREATE TABLE IF NOT EXISTS user_meta(
|
||||
user_id INTEGER PRIMARY KEY, activo INTEGER DEFAULT 1, notas TEXT)''',
|
||||
// Tabla notification_history
|
||||
'''CREATE TABLE IF NOT EXISTS notification_history(
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user_id INTEGER, route_id TEXT NOT NULL,
|
||||
event_type TEXT NOT NULL, title TEXT NOT NULL,
|
||||
body TEXT NOT NULL, fecha TEXT NOT NULL,
|
||||
leida INTEGER DEFAULT 0)''',
|
||||
'''CREATE TABLE IF NOT EXISTS user_meta(
|
||||
user_id INTEGER PRIMARY KEY, activo INTEGER DEFAULT 1, notas TEXT)''',
|
||||
body TEXT NOT NULL, fecha TEXT NOT NULL, leida INTEGER DEFAULT 0)''',
|
||||
// Tablas de gestión de reportes
|
||||
'''CREATE TABLE IF NOT EXISTS reporte_notas(
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
reporte_id INTEGER NOT NULL, admin_id INTEGER NOT NULL,
|
||||
@@ -134,6 +142,7 @@ class DbHelper {
|
||||
reporte_id INTEGER NOT NULL, user_id INTEGER NOT NULL,
|
||||
rol TEXT NOT NULL, mensaje TEXT NOT NULL,
|
||||
fecha TEXT NOT NULL, leido INTEGER DEFAULT 0)''',
|
||||
// Tabla route_definitions
|
||||
'''CREATE TABLE IF NOT EXISTS route_definitions(
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
route_id TEXT UNIQUE NOT NULL, nombre TEXT NOT NULL,
|
||||
@@ -141,9 +150,8 @@ class DbHelper {
|
||||
hora_fin TEXT NOT NULL, turno TEXT NOT NULL,
|
||||
colonias TEXT NOT NULL, activa INTEGER DEFAULT 1)''',
|
||||
];
|
||||
for (final sql in helpers) {
|
||||
for (final sql in sqls) {
|
||||
try { await db.execute(sql); } catch (_) {}
|
||||
// Ignorar errores (ej. columna ya existe)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user