CREATE TABLE watch.abTest(testID INTEGER PRIMARY KEY,  groupID INTEGER);
# INSERT INTO watch.abTest SELECT * FROM main.abTest;

CREATE TABLE watch.activity(activityID INTEGER PRIMARY KEY, activityTypeID INTEGER, activityNameID INTEGER, activityNameStr TEXT, speedBased BOOLEAN, distanceMeasure INTEGER, selected BOOLEAN, inSummaries BOOLEAN, filterLocations BOOLEAN, warmUpTimesCount INTEGER, workoutTimesCount INTEGER, coolDownTimesCount INTEGER, runCellTopLeftStatsItemID INTEGER, runCellBotLeftStatsItemID INTEGER, splitDistanceIntervalID INTEGER, summaryActivityID INTEGER, heartRateMinTarget INTEGER, heartRateMaxTarget INTEGER, speedMinTarget DOUBLE, speedMaxTarget DOUBLE, paceMinTarget DOUBLE, paceMaxTarget DOUBLE, crankCadenceMinTarget INTEGER, crankCadenceMaxTarget INTEGER, strideCadenceMinTarget DOUBLE, strideCadenceMaxTarget DOUBLE, dampenFastest BOOLEAN, stopAtEnd BOOLEAN, activityDone BOOLEAN, calendarEventID TEXT, activityNotesID INTEGER, activityNotesStr TEXT, usedAsPlanActivity BOOLEAN, useIndoors INTEGER, useSteps INTEGER, bikeID INTEGER, shoesID INTEGER, stopDetection INTEGER, appOffline INTEGER, powerMinTarget INTEGER, powerMaxTarget INTEGER, runCellWeather BOOLEAN, dashboard BLOB, summaryDashboard BLOB, showProgressPage BOOLEAN, useStepDistance INTEGER, strideMeasure INTEGER, strideLength DOUBLE, cycleOffRoad BOOLEAN);
INSERT INTO watch.activity SELECT * FROM main.activity;

CREATE TABLE watch.activityInterval(activityID INTEGER, intervalGroupID INTEGER, intervalIndex INTEGER, intervalTypeID INTEGER, intervalNameID INTEGER, intervalNameStr TEXT, runTime DOUBLE, length DOUBLE, lengthMeasure INTEGER, heartRateMinTarget INTEGER, heartRateMaxTarget INTEGER, speedMinTarget DOUBLE, speedMaxTarget DOUBLE, crankCadenceMinTarget INTEGER, crankCadenceMaxTarget INTEGER, strideCadenceMinTarget DOUBLE, strideCadenceMaxTarget DOUBLE, paceMinTarget DOUBLE, paceMaxTarget DOUBLE, latitude DOUBLE, longitude DOUBLE, powerMinTarget INTEGER, powerMaxTarget INTEGER, PRIMARY KEY(activityID, intervalGroupID, intervalIndex));
INSERT INTO watch.activityInterval SELECT * FROM main.activityInterval;

CREATE TABLE watch.activityType(activityTypeID INTEGER PRIMARY KEY, maxSpeed DOUBLE, rateTimeThreshold DOUBLE, rateDistanceThreshold DOUBLE, oldRateTimeThreshold DOUBLE, oldRateDistanceThreshold DOUBLE, stoppedTimeThreshold DOUBLE, stoppedDistanceThreshold DOUBLE, modified BOOLEAN, maxABDistance DOUBLE, longRateTimeThreshold DOUBLE, motionThreshold DOUBLE, assignBike BOOLEAN, assignShoes BOOLEAN);
INSERT INTO watch.activityType SELECT * FROM main.activityType;

CREATE TABLE watch.activityZone(zoneSetID INTEGER, zoneIndex INTEGER, zoneNameID INTEGER, zoneNameStr TEXT, zoneMinValue DOUBLE, PRIMARY KEY(zoneSetID, zoneIndex));
INSERT INTO watch.activityZone SELECT * FROM main.activityZone;

CREATE TABLE watch.activityZoneSet(zoneSetID INTEGER PRIMARY KEY, zoneSetTypeID INTEGER, zoneSetNameID INTEGER, zoneSetNameStr TEXT, zoneMaxValue DOUBLE, automatic BOOLEAN, selected BOOLEAN);
INSERT INTO watch.activityZoneSet SELECT * FROM main.activityZoneSet;

CREATE TABLE watch.altitude(runID INTEGER, sequenceID INTEGER, timeOffset DOUBLE, altitude DOUBLE, distanceDelta DOUBLE, climbSpeed DOUBLE, longAltitude DOUBLE, grade DOUBLE, PRIMARY KEY(runID, sequenceID));
CREATE INDEX watch.idxAltitudeRunIDSequenceID ON altitude (runID, sequenceID);
CREATE INDEX watch.idxAltitudeRunIDTimeOffset ON altitude (runID, timeOffset);
# INSERT INTO watch.altitude SELECT * FROM main.altitude;

CREATE TABLE watch.android(key INTEGER PRIMARY KEY, settingsJSON TEXT);
INSERT INTO watch.android SELECT * FROM main.android;

CREATE TABLE watch.androidPurchase(id INTEGER PRIMARY KEY AUTOINCREMENT, purchaseTime TIMESTAMP, orderId TEXT, packageName TEXT, productId TEXT, originalPurchaseTime TIMESTAMP, purchaseState INTEGER, token TEXT, signature TEXT, isAutoRenewing BOOLEAN, json TEXT);
# INSERT INTO watch.androidPurchase SELECT * FROM main.androidPurchase;

CREATE TABLE watch.announcements(key INTEGER PRIMARY KEY, timeIntervalID INTEGER, timeItemList TEXT, distanceIntervalID INTEGER, distanceItemList TEXT, onDemand INTEGER, onDemandItemList TEXT, onPassingEvent BOOLEAN, shorten BOOLEAN, volume DOUBLE, interruptIPod BOOLEAN, interruptIPodUI BOOLEAN, target INTEGER, startStop INTEGER, beginSplit BOOLEAN, endSplit BOOLEAN, endSplitItemList TEXT, beginInterval BOOLEAN, endInterval BOOLEAN, endIntervalItemList TEXT, halfDistance BOOLEAN, fullDistance BOOLEAN, awakenBluetoothAudio INTEGER, beginIntervalNumber BOOLEAN, beginIntervalRepetition BOOLEAN, audioDucking BOOLEAN, announcementsEnabled BOOLEAN);
INSERT INTO watch.announcements SELECT * FROM main.announcements;

CREATE TABLE watch.backup(key INTEGER PRIMARY KEY, enabled BOOLEAN, name TEXT, autoSaveFrequency INTEGER, useCellular BOOLEAN, saveTime TIMESTAMP, askedAutoSave BOOLEAN, askInstallTime TIMESTAMP);
INSERT INTO watch.backup SELECT * FROM main.backup;

CREATE TABLE watch.bike(bikeID INTEGER PRIMARY KEY, name TEXT, wheelSize DOUBLE, wheelSizeUnits INTEGER, wheelSizeShowCircumference BOOLEAN, initialDistance DOUBLE, date TIMESTAMP);
INSERT INTO watch.bike SELECT * FROM main.bike;

CREATE TABLE watch.bikeSpeedStopDetection(runID INTEGER, sequenceID INTEGER, timeOffset DOUBLE, action INTEGER, PRIMARY KEY(runID, sequenceID));
# INSERT INTO watch.bikeSpeedStopDetection SELECT * FROM main.bikeSpeedStopDetection;

CREATE TABLE watch.blobStore(blobID INTEGER PRIMARY KEY, blob BLOB);
INSERT INTO watch.blobStore SELECT * FROM main.blobStore;

CREATE TABLE watch.calendar(key INTEGER PRIMARY KEY, syncEnabled BOOL, calendarTitle TEXT, calendarType INTEGER, titleItems TEXT, noteItems TEXT, allDayEnabled BOOLEAN, firstWeekday INTEGER, availability INTEGER);
INSERT INTO watch.calendar SELECT * FROM main.calendar;

CREATE TABLE watch.competitor(competitorID INTEGER PRIMARY KEY AUTOINCREMENT, competitorIconID INTEGER, name TEXT, initials TEXT, share INTEGER);
INSERT INTO watch.competitor SELECT * FROM main.competitor;

CREATE TABLE watch.coordinate(runID INTEGER, sequenceID INTEGER, timeOffset DOUBLE, latitude DOUBLE, longitude DOUBLE, distanceDelta DOUBLE, speed DOUBLE, longSpeed DOUBLE, PRIMARY KEY(runID, sequenceID));
CREATE INDEX watch.idxCoordinateRunIDSequenceID ON coordinate (runID, sequenceID);
CREATE INDEX watch.idxCoordinateRunIDTimeOffset ON coordinate (runID, timeOffset);
# INSERT INTO watch.coordinate SELECT * FROM main.coordinate;

CREATE TABLE watch.dailymile(key INTEGER PRIMARY KEY, dailymileEnabled BOOLEAN, accessToken TEXT, username TEXT, displayName TEXT, sendOnStart BOOLEAN, sendOnStartTitleItems TEXT, sendOnStartMessageItems TEXT, sendOnStop BOOLEAN, sendOnStopTitleItems TEXT, sendOnStopMessageItems TEXT, sendOnContinue BOOLEAN, sendOnContinueTitleItems TEXT, sendOnContinueMessageItems TEXT, sendOnDone BOOLEAN, sendOnDoneTitleItems TEXT, sendOnDoneMessageItems TEXT, sendAtTimeInterval INTEGER, sendAtTimeIntervalTitleItems TEXT, sendAtTimeIntervalMessageItems TEXT, sendAtDistanceInterval INTEGER, sendAtDistanceIntervalTitleItems TEXT, sendAtDistanceIntervalMessageItems TEXT, dailymileAnnouncementsType INTEGER, userWhiteList TEXT, promptOnDone BOOLEAN, shareMap BOOLEAN, sendEndSplit BOOLEAN, sendEndSplitTitleItems TEXT, sendEndSplitMessageItems TEXT, sendEndInterval BOOLEAN, sendEndIntervalTitleItems TEXT, sendEndIntervalMessageItems TEXT, announceAllowMe BOOLEAN);
INSERT INTO watch.dailymile SELECT * FROM main.dailymile;

CREATE TABLE watch.dashboard(dashboardID INTEGER PRIMARY KEY, dashboard BLOB);
# INSERT INTO watch.dashboard SELECT * FROM main.dashboard;

CREATE TABLE watch.device(id INTEGER PRIMARY KEY, connectionParams TEXT, name TEXT, heartRateEnabled INTEGER, bikeSpeedEnabled INTEGER, bikeCadenceEnabled INTEGER, bikePowerEnabled INTEGER, bikeSpeedIndoorsOnly BOOLEAN, bikePowerContribution INTEGER, bikePowerScale DOUBLE);
# INSERT INTO watch.device SELECT * FROM main.device;

CREATE TABLE watch.elevationLookup(id INTEGER PRIMARY KEY AUTOINCREMENT, lat DOUBLE, lng DOUBLE, elevation DOUBLE, resolution DOUBLE, nwLat DOUBLE, nwLng DOUBLE, seLat DOUBLE, seLng DOUBLE);
CREATE INDEX watch.idxElevationLookupLat ON elevationLookup (lat);
CREATE INDEX watch.idxElevationLookupLng ON elevationLookup (lng);
CREATE INDEX watch.idxElevationLookupResolution ON elevationLookup (resolution);
CREATE INDEX watch.idxElevationLookupNWLat ON elevationLookup (nwLat);
CREATE INDEX watch.idxElevationLookupNWLng ON elevationLookup (nwLng);
CREATE INDEX watch.idxElevationLookupSELat ON elevationLookup (seLat);
CREATE INDEX watch.idxElevationLookupSELng ON elevationLookup (seLng);
# INSERT INTO watch.elevationLookup SELECT * FROM main.elevationLookup;

CREATE TABLE watch.emailUpdates(key INTEGER PRIMARY KEY, emailUpdatesEnabled BOOL, sendOnStart BOOL, sendOnStartItems TEXT, sendOnStop BOOL, sendOnStopItems TEXT, sendOnContinue BOOL, sendOnContinueItems TEXT, sendOnDone BOOL, sendOnDoneItems TEXT, sendAtTimeInterval INTEGER, sendAtTimeIntervalItems TEXT, sendAtDistanceInterval INTEGER, sendAtDistanceIntervalItems TEXT, toList TEXT, promptOnDone BOOLEAN, fromNoReply BOOLEAN, sendEndSplit BOOLEAN, sendEndSplitItems TEXT, sendEndInterval BOOLEAN, sendEndIntervalItems TEXT, includeSystem BOOLEAN);
INSERT INTO watch.emailUpdates SELECT * FROM main.emailUpdates;

CREATE TABLE watch.emailUpdatesMailbox(messageID INTEGER PRIMARY KEY AUTOINCREMENT, timestamp TIMESTAMP, subject TEXT, toList TEXT, message TEXT);
# INSERT INTO watch.emailUpdatesMailbox SELECT * FROM main.emailUpdatesMailbox;

CREATE TABLE watch.facebook(key INTEGER PRIMARY KEY, facebookEnabled BOOL, userName TEXT, postOnStart BOOL, postOnStartTitleItems TEXT, postOnStartDescriptionItems TEXT, postOnStop BOOL, postOnStopTitleItems TEXT, postOnStopDescriptionItems TEXT, postOnContinue BOOL, postOnContinueTitleItems TEXT, postOnContinueDescriptionItems TEXT, postOnDone BOOL, postOnDoneTitleItems TEXT, postOnDoneDescriptionItems TEXT, postAtTimeInterval INTEGER, postAtTimeIntervalTitleItems TEXT, postAtTimeIntervalDescriptionItems TEXT, postAtDistanceInterval INTEGER, postAtDistanceIntervalTitleItems TEXT, postAtDistanceIntervalDescriptionItems TEXT, facebookAnnouncementsType INTEGER, userWhiteList TEXT, promptOnDone BOOLEAN, accessToken TEXT, expirationInterval DOUBLE, uid TEXT, postEndSplit BOOLEAN, postEndSplitTitleItems TEXT, postEndSplitDescriptionItems TEXT, postEndInterval BOOLEAN, postEndIntervalTitleItems TEXT, postEndIntervalDescriptionItems TEXT, announceAllowMe BOOLEAN, postAtTime BOOLEAN, postAtDistance BOOLEAN);
INSERT INTO watch.facebook SELECT * FROM main.facebook;

CREATE TABLE watch.friends(key INTEGER PRIMARY KEY, friendsEnabled BOOLEAN, friendsUIEnabled BOOLEAN, friendsSettings TEXT, friendsList TEXT);
INSERT INTO watch.friends (key, friendsSettings) SELECT key, friendsSettings FROM main.friends;

CREATE TABLE watch.heartRateData(runID INTEGER, sequenceID INTEGER, timeOffset DOUBLE, heartRate INTEGER, PRIMARY KEY(runID, sequenceID));
CREATE INDEX watch.idxHeartRateDataRunIDSequenceID ON heartRateData (runID, sequenceID);
CREATE INDEX watch.idxHeartRateDataRunIDTimeOffset ON heartRateData (runID, timeOffset);
# INSERT INTO watch.heartRateData SELECT * FROM main.heartRateData;

CREATE TABLE watch.headingBlob(runID INTEGER, blobID INTEGER, blob BLOB, PRIMARY KEY(runID, blobID));
CREATE INDEX watch.idxHeadingBlobRunIDBlobID ON headingBlob (runID, blobID);
# INSERT INTO watch.headingBlob SELECT * FROM main.headingBlob;

CREATE TABLE watch.locationBlob(runID INTEGER, blobID INTEGER, blob BLOB, PRIMARY KEY(runID, blobID));
CREATE INDEX watch.idxLocationBlobRunIDBlobID ON locationBlob (runID, blobID);
# INSERT INTO watch.locationBlob SELECT * FROM main.locationBlob;

CREATE TABLE watch.meter(key INTEGER PRIMARY KEY, dbVersion INTEGER, dbIdentifier TEXT, appLaunchCount INTEGER, selectedTabNumber INTEGER, tabOrder TEXT, runState INTEGER, currentRunID INTEGER, selectedRouteID INTEGER, appInstanceID TEXT, onStartPostID TEXT, noNoGPSWarning BOOLEAN, askedToFollow BOOLEAN, notes TEXT, lastImportCompetitorID INTEGER, selectedVoiceID TEXT, minGPSStatusForStart DOUBLE, minCoordMove DOUBLE, minAltitudeMove DOUBLE, coordMaxBToACDistance DOUBLE, minHBarsForOutliers DOUBLE, minOutlierDistance DOUBLE, cIntervalGroupID INTEGER, cIntervalGroupTimesRun INTEGER, cIntervalIndex INTEGER, runSIZVCDisplay INTEGER, runSIZVCZoneSetID INTEGER, bikeSpeedStoppedThreshold DOUBLE, targetNagTime DOUBLE, targetLocationOuterDistance DOUBLE, targetLocationInnerDistance DOUBLE, maxSensorAge DOUBLE, stopwatchPageIndex INTEGER, planPaneViewIndex INTEGER, userConsent BOOLEAN, upgradeVoicesInProgress BOOLEAN, selectedProductIDSuffix TEXT, newsReadTime TIMESTAMP, flashNewsCheckTime TIMESTAMP, selectedBikeID INTEGER, selectedShoesID INTEGER, firstUseTime TIMESTAMP, firstUseVersion TEXT, lastPhoneSizeRetina4 BOOLEAN, iPhoneAppLaunchCount INTEGER, iPadAppLaunchCount INTEGER, iPadFirstUse BOOLEAN, modTime TIMESTAMP, asIdentifier TEXT, asTrackingEnabled BOOLEAN, generalDict TEXT, tickets TEXT, proLegacy BOOLEAN, proUpgradeTime TIMESTAMP, statsUploadTime TIMESTAMP, sensorsInterval DOUBLE, askedSummarizedActivities BOOLEAN, askToGetVoiceTime TEXT, eliteUpgradeTime TIMESTAMP, didSetupElite BOOLEAN, historySavedActivity INTEGER, historySavedGroup INTEGER, historySavedSummary INTEGER, pedometerSavedSpan INTEGER, capabilities BLOB, elitePurchaseTime TIMESTAMP, appVersion TEXT, appBuildNumber TEXT, historySavedActivities TEXT, lastPhoneDisplayHeight INTEGER, selectedPathID INTEGER, watchKeepAliveDayID INTEGER, watchKeepAliveTime DOUBLE, watchUsageTime DOUBLE, watchUsageKind INTEGER, watchVersion TEXT, siriUsageTime DOUBLE, iAdAttribution BOOLEAN, iAdCampaignID TEXT, iAdCampaignName TEXT, iAdConversionDate TIMESTAMP, iAdClickDate TIMESTAMP, iAdGroupID TEXT, iAdAdGroupName TEXT, iAdKeyword TEXT, appConfig TEXT, requestReviewID INTEGER, requestReviewTime TIMESTAMP, requestReviewVersion TEXT, requestReviewBuildNumber TEXT, requestReviewCheckTime TIMESTAMP, userConsentVersion INTEGER, weatherSig TEXT);

INSERT INTO watch.meter (key, dbVersion, dbIdentifier, appLaunchCount, selectedTabNumber, tabOrder, runState, currentRunID, selectedRouteID, appInstanceID, onStartPostID, noNoGPSWarning, askedToFollow, notes, lastImportCompetitorID, selectedVoiceID, minGPSStatusForStart, minCoordMove, minAltitudeMove, coordMaxBToACDistance, minHBarsForOutliers, minOutlierDistance, cIntervalGroupID, cIntervalGroupTimesRun, cIntervalIndex, runSIZVCDisplay, runSIZVCZoneSetID, bikeSpeedStoppedThreshold, targetNagTime, targetLocationOuterDistance, targetLocationInnerDistance, maxSensorAge, stopwatchPageIndex, planPaneViewIndex, userConsent, upgradeVoicesInProgress, selectedProductIDSuffix, newsReadTime, flashNewsCheckTime, selectedBikeID, selectedShoesID, firstUseTime, firstUseVersion, lastPhoneSizeRetina4, iPhoneAppLaunchCount, iPadAppLaunchCount, iPadFirstUse, modTime, asIdentifier, asTrackingEnabled, generalDict, tickets, proLegacy, proUpgradeTime, statsUploadTime, sensorsInterval, askedSummarizedActivities, askToGetVoiceTime, eliteUpgradeTime, didSetupElite, historySavedActivity, historySavedGroup, historySavedSummary, pedometerSavedSpan, capabilities, elitePurchaseTime, appVersion, appBuildNumber, historySavedActivities, lastPhoneDisplayHeight, selectedPathID, watchKeepAliveDayID, watchKeepAliveTime, watchUsageTime, watchUsageKind, watchVersion, siriUsageTime, iAdAttribution, iAdCampaignID, iAdCampaignName, iAdConversionDate, iAdClickDate, iAdGroupID, iAdAdGroupName, iAdKeyword, appConfig, requestReviewID, requestReviewTime, requestReviewVersion, requestReviewBuildNumber, requestReviewCheckTime, userConsentVersion, weatherSig) SELECT key, dbVersion, dbIdentifier, appLaunchCount, selectedTabNumber, tabOrder, runState, currentRunID, selectedRouteID, appInstanceID, onStartPostID, noNoGPSWarning, askedToFollow, notes, lastImportCompetitorID, selectedVoiceID, minGPSStatusForStart, minCoordMove, minAltitudeMove, coordMaxBToACDistance, minHBarsForOutliers, minOutlierDistance, cIntervalGroupID, cIntervalGroupTimesRun, cIntervalIndex, runSIZVCDisplay, runSIZVCZoneSetID, bikeSpeedStoppedThreshold, targetNagTime, targetLocationOuterDistance, targetLocationInnerDistance, maxSensorAge, stopwatchPageIndex, planPaneViewIndex, userConsent, upgradeVoicesInProgress, selectedProductIDSuffix, newsReadTime, flashNewsCheckTime, selectedBikeID, selectedShoesID, firstUseTime, firstUseVersion, lastPhoneSizeRetina4, iPhoneAppLaunchCount, iPadAppLaunchCount, iPadFirstUse, modTime, asIdentifier, asTrackingEnabled, generalDict, tickets, proLegacy, proUpgradeTime, statsUploadTime, sensorsInterval, askedSummarizedActivities, askToGetVoiceTime, eliteUpgradeTime, didSetupElite, historySavedActivity, historySavedGroup, historySavedSummary, pedometerSavedSpan, capabilities, elitePurchaseTime, appVersion, appBuildNumber, historySavedActivities, lastPhoneDisplayHeight, selectedPathID, watchKeepAliveDayID, watchKeepAliveTime, watchUsageTime, watchUsageKind, watchVersion, siriUsageTime, iAdAttribution, iAdCampaignID, iAdCampaignName, iAdConversionDate, iAdClickDate, iAdGroupID, iAdAdGroupName, iAdKeyword, appConfig, requestReviewID, requestReviewTime, requestReviewVersion, requestReviewBuildNumber, requestReviewCheckTime, userConsentVersion, weatherSig FROM main.meter;

CREATE TABLE watch.motionBlob(runID INTEGER, blobID INTEGER, blob BLOB, PRIMARY KEY(runID, blobID));
CREATE INDEX watch.idxMotionBlobRunIDBlobID ON motionBlob (runID, blobID);
# INSERT INTO watch.motionBlob SELECT * FROM main.motionBlob;

CREATE TABLE watch.myFitnessPal(key INTEGER PRIMARY KEY, myFitnessPalEnabled BOOLEAN, accessToken TEXT, refreshToken TEXT, doneSend INTEGER, doneItems TEXT);
INSERT INTO watch.myFitnessPal SELECT * FROM main.myFitnessPal;

CREATE TABLE watch.notify(key INTEGER PRIMARY KEY, notifyEnabled BOOL, notifyAtTimeInterval INTEGER, notifyAtTimeIntervalItems TEXT, notifyAtDistanceInterval INTEGER, notifyAtDistanceIntervalItems TEXT, notifyBeginSplit BOOLEAN, notifyEndSplit BOOLEAN, notifyEndSplitItems TEXT, notifyBeginInterval BOOLEAN, notifyEndInterval BOOLEAN, notifyEndIntervalItems TEXT, notifyTarget BOOLEAN, notifyGrandfather BOOLEAN, notifyEndIntervalKind INTEGER);
INSERT INTO watch.notify SELECT * FROM main.notify;

CREATE TABLE watch.pedometerData(dayID INTEGER PRIMARY KEY, steps INTEGER, done BOOLEAN);
# INSERT INTO watch.pedometerData SELECT * FROM main.pedometerData;

CREATE TABLE watch.plan(planID INTEGER PRIMARY KEY, planIndex INTEGER, nameID INTEGER, nameStr TEXT, descID INTEGER, descStr TEXT, date TIMESTAMP, weekday INTEGER, dateType INTEGER, calendarSync BOOLEAN, currentActivityIndex INTEGER, planEnabled BOOLEAN, planTypeID INTEGER);
INSERT INTO watch.plan SELECT * FROM main.plan;

CREATE TABLE watch.planActivity(planID INTEGER, activityIndex INTEGER, activityID INTEGER, PRIMARY KEY(planID, activityIndex));
INSERT INTO watch.planActivity SELECT * FROM main.planActivity;

CREATE TABLE watch.purchase(productIdentifier TEXT, transactionIdentifier TEXT, transactionReceipt TEXT, transactionDate TIMESTAMP, originalTransactionIdentifier TEXT, originalTransactionDate TIMESTAMP);
# INSERT INTO watch.purchase SELECT * FROM main.purchase;

CREATE TABLE watch.register(key INTEGER PRIMARY KEY, status BOOLEAN, emailAddr TEXT, firstName TEXT, lastName TEXT, receiveNews BOOLEAN, regEmailAddr TEXT, emailEveryRun BOOLEAN);
INSERT INTO watch.register SELECT * FROM main.register;

CREATE TABLE watch.route(routeID INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, bmwEnabled BOOLEAN, competitorsEnabled BOOLEAN, officialEnabled BOOLEAN, showMapIcons BOOLEAN, showGraphsIcons BOOLEAN, officialDistance DOUBLE, officialTime DOUBLE, useOfficialDistance BOOLEAN, dashboard BLOB, officialRunID INTEGER);
CREATE INDEX watch.idxRouteName ON route (name);
INSERT INTO watch.route SELECT * FROM main.route;

CREATE TABLE watch.run(runID INTEGER PRIMARY KEY AUTOINCREMENT, routeID INTEGER, activityID INTEGER, startTime TIMESTAMP, startTimeZone TEXT, shareWithFriendsTime TIMESTAMP, runTime DOUBLE, stoppedTime DOUBLE, badGPSTime DOUBLE, distance DOUBLE, ascent DOUBLE, descent DOUBLE, calories DOUBLE, maxSpeed DOUBLE, minPace DOUBLE, weight DOUBLE, age INTEGER, sex INTEGER, vo2Max DOUBLE, wheelSize DOUBLE, official BOOLEAN, runEditFlags INTEGER, dontLoadRunData BOOLEAN, batteryUsage DOUBLE, batteryLevel DOUBLE, competitorID INTEGER, pathOnly BOOLEAN, import BOOLEAN, importDict TEXT, stopDetection BOOLEAN, caloriesUseElevation BOOLEAN, calendarEventID TEXT, coordinateHasSpeed BOOLEAN, altitudeHasDistanceDelta BOOLEAN, altitudeHasClimbSpeed BOOLEAN, avgHeartRate INTEGER, maxHeartRate INTEGER, avgWheelRPM INTEGER, maxWheelRPM INTEGER, avgCrankRPM INTEGER, maxCrankRPM INTEGER, userHash TEXT, dailymileEntryID TEXT, notes TEXT, altitudeHasLongAltitude BOOLEAN, useIndoors BOOLEAN, useSteps BOOLEAN, steps INTEGER, maxStepsPM INTEGER, bikeID INTEGER, shoesID INTEGER, avgStepsPM INTEGER, avgPower INTEGER, maxPower INTEGER, facebookActionID TEXT, facebookActionType TEXT, thresholdPower INTEGER, adjustedPower INTEGER, avgPowerBalance INTEGER, powerOutput DOUBLE, powerIntensity DOUBLE, powerScore INTEGER, peakPower20Sec INTEGER, peakPower1Min INTEGER, peakPower5Min INTEGER, peakPower20Min INTEGER, peakPower1Hr INTEGER, facebookObjectID TEXT, locality TEXT, weather BLOB, useStepDistance BOOLEAN, strideLength DOUBLE, temp DOUBLE, minTemp DOUBLE, avgTemp DOUBLE, maxTemp DOUBLE, weatherSummary TEXT, grossSteps INTEGER, altitudeFromAltimeter BOOLEAN, peakPower10Min INTEGER, health TEXT, pathname TEXT, healthSaved BOOLEAN, heartRateFromHealth BOOLEAN, altitudeAdjust INTEGER, altitudeAdjustment DOUBLE, runTimeBegin DOUBLE, runTimeEnd DOUBLE, altitudeHasGrade BOOLEAN, uuid TEXT, runProperties TEXT);
CREATE INDEX watch.idxRunRunTime ON run (runTime);
CREATE INDEX watch.idxRunStartTime ON run (startTime);
CREATE INDEX watch.idxRunShareWithFriendsTime ON run (shareWithFriendsTime);
CREATE INDEX watch.idxRunUUID ON run (uuid);
# INSERT INTO watch.run SELECT * FROM main.run;

CREATE TABLE watch.runComments(runID INTEGER PRIMARY KEY, commentsHash TEXT, commentsArray TEXT);
# INSERT INTO watch.runComments SELECT * FROM main.runComments;

CREATE TABLE watch.runCommentsUUID(id INTEGER PRIMARY KEY AUTOINCREMENT, runUUID TEXT, commentsHash TEXT, commentsArray TEXT);
CREATE INDEX watch.idxRunCommentsUUIDRunUUID ON runCommentsUUID (runUUID);
# INSERT INTO watch.runCommentsUUID SELECT * FROM main.runCommentsUUID;

CREATE TABLE watch.runInterval(runID INTEGER, sequenceID INTEGER, intervalTypeID INTEGER, timeOffset DOUBLE, runTimeDelta DOUBLE, distanceDelta DOUBLE, intervalNameID INTEGER, intervalNameStr TEXT, origIntervalTypeID INTEGER, importRunTime DOUBLE, importStoppedTime DOUBLE, importDistance DOUBLE, importCalories DOUBLE, importAvgSpeed DOUBLE, importMaxSpeed DOUBLE, importAvgHeartRate INTEGER, importMaxHeartRate INTEGER, importAvgCycleCadence INTEGER, importMaxCycleCadence INTEGER, importAvgPower INTEGER, importAvgPowerBalance INTEGER, importMaxPower INTEGER, importAvgStepCadence INTEGER, importMaxStepCadence INTEGER, importSteps INTEGER, importAscent DOUBLE, importDescent DOUBLE, PRIMARY KEY(runID, sequenceID));
CREATE INDEX watch.idxRunIntervalRunIDSequenceID ON runInterval (runID, sequenceID);
CREATE INDEX watch.idxRunIntervalRunIDTimeOffset ON runInterval (runID, timeOffset);
# INSERT INTO watch.runInterval SELECT * FROM main.runInterval;

CREATE TABLE watch.runState(runID INTEGER, sequenceID INTEGER, timeOffset DOUBLE, runState INTEGER, steps INTEGER, PRIMARY KEY(runID, sequenceID));
CREATE INDEX watch.idxRunStateRunIDSequenceID ON runState (runID, sequenceID);
CREATE INDEX watch.idxRunStateRunIDTimeOffset ON runState (runID, timeOffset);
# INSERT INTO watch.runState SELECT * FROM main.runState;

CREATE TABLE watch.sensor(id INTEGER PRIMARY KEY, networkType INTEGER, antDeviceNumber INTEGER, antTransmissionType INTEGER, btleDeviceUUID TEXT, sensorType INTEGER, sensorSubtype INTEGER, name TEXT, heartRateEnabled INTEGER, bikeSpeedEnabled INTEGER, bikeCadenceEnabled INTEGER, bikePowerEnabled INTEGER, displayEnabled INTEGER, elevationEnabled INTEGER, temperatureEnabled INTEGER, antBridgeEnabled INTEGER, bikeSpeedIndoorsOnly BOOLEAN, bikePowerContribution INTEGER, bikePowerScale DOUBLE);
# INSERT INTO watch.sensor SELECT * FROM main.sensor;

CREATE TABLE watch.sensorData(runID INTEGER, sequenceID INTEGER, timeOffset DOUBLE, heartRate INTEGER, wheelRPM INTEGER, accumWheelRevs INTEGER, crankRPM INTEGER, stepCount INTEGER, power INTEGER, powerBalance INTEGER, PRIMARY KEY(runID, sequenceID));
CREATE INDEX watch.idxSensorDataRunIDSequenceID ON sensorData (runID, sequenceID);
CREATE INDEX watch.idxSensorDataRunIDTimeOffset ON sensorData (runID, timeOffset);
# INSERT INTO watch.sensorData SELECT * FROM main.sensorData;

CREATE TABLE watch.settings(key INTEGER PRIMARY KEY, appDistanceMeasure INTEGER, appWeightMeasure INTEGER, bestRunHas INTEGER, proximitySensingEnabled BOOLEAN, landscapeModeEnabled BOOLEAN, weight DOUBLE, remoteControl BOOLEAN, appMapType INTEGER, distanceMarkersEnabled BOOLEAN, graphsLimitEnabled BOOLEAN, badGPSTimeEnabled BOOLEAN, badGPSTimeTimeLimit DOUBLE, badGPSTimePercentTime INTEGER, appOffline BOOLEAN, batterySaverTime DOUBLE, stopDetection BOOLEAN, periodicMapUpload BOOLEAN, useLocationServices BOOLEAN, screenOn INTEGER, screenOrientation INTEGER, gpxImportUseLocalTimeZone BOOLEAN, newRouteOfficialDistance DOUBLE, newRouteOfficialTime DOUBLE, defaultRouteID INTEGER, importCompetitorMe BOOLEAN, appUseCalories BOOLEAN, landscapeModeUI BOOLEAN, proximitySensingUI BOOLEAN, topGraphViewDisplayID INTEGER, botGraphViewDisplayID INTEGER, caloriesUseElevation BOOLEAN, intervalMarkersEnabled BOOLEAN, birthday TIMESTAMP, sex INTEGER, vo2Max DOUBLE, wheelSize DOUBLE, wheelSizeUnits INTEGER, wheelSizeShowCircumference BOOLEAN, bluetooth BOOLEAN, stopwatchPageList BLOB, autoConnectSensors BOOLEAN, maxWheelRPM INTEGER, maxCrankRPM INTEGER, awakenBluetoothAudio BOOLEAN, autoSelectLastActivity BOOLEAN, stopDetectionInExports BOOLEAN, maxLocationAccuracy BOOLEAN, useIndoors BOOLEAN, useSteps BOOLEAN, newsEnabled BOOLEAN, rflktPageList BLOB, indoorsWarningEnabled BOOLEAN, rflktButtonDict BLOB, dampenAscentDescent BOOLEAN, thresholdPower INTEGER, latestFacebook BOOLEAN, shareMap BOOLEAN, graphViewDisplayID3 INTEGER, graphViewDisplayID4 INTEGER, graphViewDisplayIDs TEXT, rflktBacklightTime DOUBLE, rflktPageLimit INTEGER, mapVendor INTEGER, mapTrackHeading BOOLEAN, mapTrafficEnabled BOOLEAN, appUseCelsius BOOLEAN, stopwatchBlack BOOLEAN, tcxLaps INTEGER, stopDetectionUsesDuplicateLocations BOOLEAN, historyDashboard BLOB, stopwatchStatsTextStyle INTEGER, chinaGPSOffset BOOLEAN, lowMemoryWarningEnabled BOOLEAN, rflktBacklightPercent INTEGER, rflktElevationCalibration INTEGER, rflktCalibrationElevation DOUBLE, mapMode INTEGER, ratings BOOLEAN, casioPageList BLOB, casioButtonDict BLOB, useStepDistance BOOLEAN, runStrideMeasure INTEGER, runStrideLength DOUBLE, walkStrideMeasure INTEGER, walkStrideLength DOUBLE, speakKind INTEGER, casioDisconnectOnDone BOOLEAN, smoothElevationGraph BOOLEAN, voiceSettings BOOLEAN, todayEnabled BOOLEAN, todayItems TEXT, compressUploads BOOLEAN, health TEXT, speakAppleVoice TEXT, barometricAltimeter BOOLEAN, defaultPathID INTEGER, watchPageList BLOB, speedSensorFailover BOOLEAN, caloriesFromHeartRate BOOLEAN, lapOnStop BOOLEAN, duplicateDeviceWarningEnabled BOOLEAN, gpsErrorReduction INTEGER, mapSmoothPaths INTEGER, stopwatchBackground INTEGER);

INSERT INTO watch.settings (key, appDistanceMeasure, appWeightMeasure, bestRunHas, proximitySensingEnabled, landscapeModeEnabled, weight, remoteControl, appMapType, distanceMarkersEnabled, graphsLimitEnabled, badGPSTimeEnabled, badGPSTimeTimeLimit, badGPSTimePercentTime, appOffline, batterySaverTime, stopDetection, periodicMapUpload, useLocationServices, screenOn, screenOrientation, gpxImportUseLocalTimeZone, newRouteOfficialDistance, newRouteOfficialTime, defaultRouteID, importCompetitorMe, appUseCalories, landscapeModeUI, proximitySensingUI, topGraphViewDisplayID, botGraphViewDisplayID, caloriesUseElevation, intervalMarkersEnabled, birthday, sex, vo2Max, wheelSize, wheelSizeUnits, wheelSizeShowCircumference, bluetooth, autoConnectSensors, maxWheelRPM, maxCrankRPM, awakenBluetoothAudio, autoSelectLastActivity, stopDetectionInExports, maxLocationAccuracy, useIndoors, useSteps, newsEnabled, indoorsWarningEnabled, dampenAscentDescent, thresholdPower, latestFacebook, shareMap, graphViewDisplayID3, graphViewDisplayID4, graphViewDisplayIDs, rflktBacklightTime, rflktPageLimit, mapVendor, mapTrackHeading, mapTrafficEnabled, appUseCelsius, stopwatchBlack, tcxLaps, stopDetectionUsesDuplicateLocations, stopwatchStatsTextStyle, chinaGPSOffset, lowMemoryWarningEnabled, rflktBacklightPercent, rflktElevationCalibration, rflktCalibrationElevation, mapMode, ratings, useStepDistance, runStrideMeasure, runStrideLength, walkStrideMeasure, walkStrideLength, speakKind, casioDisconnectOnDone, smoothElevationGraph, voiceSettings, todayEnabled, todayItems, compressUploads, health, speakAppleVoice, barometricAltimeter, defaultPathID, watchPageList, speedSensorFailover, caloriesFromHeartRate, lapOnStop, duplicateDeviceWarningEnabled, gpsErrorReduction, mapSmoothPaths, stopwatchBackground) SELECT key, appDistanceMeasure, appWeightMeasure, bestRunHas, proximitySensingEnabled, landscapeModeEnabled, weight, remoteControl, appMapType, distanceMarkersEnabled, graphsLimitEnabled, badGPSTimeEnabled, badGPSTimeTimeLimit, badGPSTimePercentTime, appOffline, batterySaverTime, stopDetection, periodicMapUpload, useLocationServices, screenOn, screenOrientation, gpxImportUseLocalTimeZone, newRouteOfficialDistance, newRouteOfficialTime, defaultRouteID, importCompetitorMe, appUseCalories, landscapeModeUI, proximitySensingUI, topGraphViewDisplayID, botGraphViewDisplayID, caloriesUseElevation, intervalMarkersEnabled, birthday, sex, vo2Max, wheelSize, wheelSizeUnits, wheelSizeShowCircumference, bluetooth, autoConnectSensors, maxWheelRPM, maxCrankRPM, awakenBluetoothAudio, autoSelectLastActivity, stopDetectionInExports, maxLocationAccuracy, useIndoors, useSteps, newsEnabled, indoorsWarningEnabled, dampenAscentDescent, thresholdPower, latestFacebook, shareMap, graphViewDisplayID3, graphViewDisplayID4, graphViewDisplayIDs, rflktBacklightTime, rflktPageLimit, mapVendor, mapTrackHeading, mapTrafficEnabled, appUseCelsius, stopwatchBlack, tcxLaps, stopDetectionUsesDuplicateLocations, stopwatchStatsTextStyle, chinaGPSOffset, lowMemoryWarningEnabled, rflktBacklightPercent, rflktElevationCalibration, rflktCalibrationElevation, mapMode, ratings, useStepDistance, runStrideMeasure, runStrideLength, walkStrideMeasure, walkStrideLength, speakKind, casioDisconnectOnDone, smoothElevationGraph, voiceSettings, todayEnabled, todayItems, compressUploads, health, speakAppleVoice, barometricAltimeter, defaultPathID, watchPageList, speedSensorFailover, caloriesFromHeartRate, lapOnStop, duplicateDeviceWarningEnabled, gpsErrorReduction, mapSmoothPaths, stopwatchBackground FROM main.settings;

CREATE TABLE watch.shoes(shoesID INTEGER PRIMARY KEY, name TEXT, initialDistance DOUBLE, date TIMESTAMP, retired BOOLEAN);
INSERT INTO watch.shoes SELECT * FROM main.shoes;

CREATE TABLE watch.stepData(runID INTEGER, sequenceID INTEGER, timeOffset DOUBLE, steps INTEGER, stepsPM INTEGER, PRIMARY KEY(runID, sequenceID));
CREATE INDEX watch.idxStepDataRunIDSequenceID ON stepData (runID, sequenceID);
CREATE INDEX watch.idxStepDataRunIDTimeOffset ON stepData (runID, timeOffset);
# INSERT INTO watch.stepData SELECT * FROM main.stepData;

CREATE TABLE watch.stepStopDetection(runID INTEGER, sequenceID INTEGER, timeOffset DOUBLE, action INTEGER, PRIMARY KEY(runID, sequenceID));
# INSERT INTO watch.stepStopDetection SELECT * FROM main.stepStopDetection;

CREATE TABLE watch.stopDetection(runID INTEGER, sequenceID INTEGER, timeOffset DOUBLE, action INTEGER, PRIMARY KEY(runID, sequenceID));
CREATE INDEX watch.idxStopDetectionRunIDSequenceID2 ON stopDetection (runID, sequenceID);
CREATE INDEX watch.idxStopDetectionRunIDTimeOffset2 ON stopDetection (runID, timeOffset);
# INSERT INTO watch.stopDetection SELECT * FROM main.stopDetection;

CREATE TABLE watch.stopwatchStatusIcon(iconIndex INTEGER PRIMARY KEY, iconID INTEGER, enabled BOOLEAN);
INSERT INTO watch.stopwatchStatusIcon SELECT * FROM main.stopwatchStatusIcon;

CREATE TABLE watch.strava(key INTEGER PRIMARY KEY, stravaEnabled BOOLEAN, accessToken TEXT, refreshToken TEXT, expiresAt INTEGER, username TEXT, doneUpload INTEGER, uploadFormat INTEGER, tokenResponseJson TEXT, refreshTokenResponseJson TEXT);
INSERT INTO watch.strava (key, stravaEnabled, accessToken, refreshToken, expiresAt, username, doneUpload, uploadFormat, tokenResponseJson, refreshTokenResponseJson) SELECT key, stravaEnabled, accessToken, refreshToken, expiresAt, username, doneUpload, uploadFormat, tokenResponseJson, refreshTokenResponseJson FROM main.strava;

CREATE TABLE watch.support(key INTEGER PRIMARY KEY, debugMode BOOLEAN, showRunID BOOLEAN, demo BOOLEAN, demoRunID INTEGER, demoTimeRatio DOUBLE, fauxLocation BOOLEAN, fauxLocationRunID INTEGER, fauxlocationTimeRatio DOUBLE, locationRecords BOOLEAN, storeDisabled BOOLEAN, speakDisabled BOOLEAN, useHeartRateData BOOLEAN, useBikeSpeedCadenceData BOOLEAN, useStrideData BOOLEAN, networkTrace BOOL, fauxMotion BOOLEAN, fauxMotionRunID INTEGER, motionRecords BOOLEAN, headingRecords BOOLEAN);
INSERT INTO watch.support SELECT * FROM main.support;

CREATE TABLE watch.temperatureData(runID INTEGER, sequenceID INTEGER, timeOffset DOUBLE, temperature DOUBLE, PRIMARY KEY(runID, sequenceID));
CREATE INDEX watch.idxTemperatureDataRunIDSequenceID ON temperatureData (runID, sequenceID);
CREATE INDEX watch.idxTemperatureDataRunIDTimeOffset ON temperatureData (runID, timeOffset);
# INSERT INTO watch.temperatureData SELECT * FROM main.temperatureData;

CREATE TABLE watch.twitter(key INTEGER PRIMARY KEY, requestToken TEXT, requestTokenSecret TEXT, accessToken TEXT, accessTokenSecret TEXT, userID TEXT, screenName TEXT, twitterEnabled BOOL, tweetOnStart BOOL, tweetOnStartItems TEXT, tweetOnStop BOOL, tweetOnStopItems TEXT, tweetOnContinue BOOL, tweetOnContinueItems TEXT, tweetOnDone BOOL, tweetOnDoneItems TEXT, tweetAtTimeInterval INTEGER, tweetAtTimeIntervalItems TEXT, tweetAtDistanceInterval INTEGER, tweetAtDistanceIntervalItems TEXT, twitterAnnouncementsType INTEGER, userWhiteList TEXT, promptOnDone BOOLEAN, tweetEndSplit BOOLEAN, tweetEndSplitItems TEXT, tweetEndInterval BOOLEAN, tweetEndIntervalItems TEXT, announceAllowMe BOOLEAN);
INSERT INTO watch.twitter SELECT * FROM main.twitter;

CREATE TABLE watch.voice(productIDSuffix TEXT PRIMARY KEY, voiceID TEXT, voiceLocale TEXT, voiceFileName TEXT, voiceSampleFileName TEXT, nameDict TEXT, descriptionDict TEXT, free BOOLEAN);
# INSERT INTO watch.voice SELECT * FROM main.voice;
