1+ import 'package:flow_api/models/event/database.dart' ;
12import 'package:flow_api/models/event/model.dart' ;
23import 'package:flow_api/models/resource/database.dart' ;
34import 'package:sqflite_common/sqlite_api.dart' ;
45
56class EventResourceDatabaseConnector extends ResourceDatabaseConnector <Event > {
7+ final EventDatabaseService eventService;
8+
9+ EventResourceDatabaseConnector (this .eventService);
10+
611 @override
712 String get connectedIdName => "eventId" ;
813
@@ -19,11 +24,17 @@ class EventResourceDatabaseConnector extends ResourceDatabaseConnector<Event> {
1924 Future <void > migrate (Database db, int version) async {
2025 await super .migrate (db, version);
2126 if (version < 4 ) {
22- await db.execute (
23- "INSERT INTO events SELECT id, parentId, groupId, blocked, name, description, location, extra FROM events_old" );
24- await db.execute (
25- "INSERT INTO eventResources(eventId, resourceId) SELECT id, placeId FROM events_old" );
26- await db.execute ("DROP TABLE events_old" );
27+ await db.execute ("PRAGMA foreign_keys=off" );
28+ await db.transaction ((txn) async {
29+ await eventService.create (txn, 'events_temp' );
30+ await txn.execute (
31+ "INSERT INTO events_temp SELECT id, parentId, groupId, blocked, name, description, location, extra FROM events" );
32+ await txn.execute (
33+ "INSERT INTO eventResources(eventId, resourceId) SELECT id, placeId FROM events" );
34+ await txn.execute ("DROP TABLE events" );
35+ await txn.execute ("ALTER TABLE events_temp RENAME TO events" );
36+ });
37+ await db.execute ("PRAGMA foreign_keys=on" );
2738 }
2839 }
2940}
0 commit comments