true
8082
web
webm
true
false
nominatim
http://nominatim.openstreetmap.org/reverse
true
all
target/tracker-server.log
org.h2.Driver
jdbc:h2:./target/database
sa
true
traccar
CREATE TABLE user (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(128) NOT NULL,
email VARCHAR(128) NOT NULL UNIQUE,
hashedPassword VARCHAR(128) NOT NULL,
salt VARCHAR(128) DEFAULT '' NOT NULL,
readonly BOOLEAN DEFAULT false NOT NULL,
admin BOOLEAN DEFAULT false NOT NULL,
map VARCHAR(128) DEFAULT 'osm' NOT NULL,
language VARCHAR(128) DEFAULT 'en' NOT NULL,
distanceUnit VARCHAR(128) DEFAULT 'km' NOT NULL,
speedUnit VARCHAR(128) DEFAULT 'kmh' NOT NULL,
latitude DOUBLE DEFAULT 0 NOT NULL,
longitude DOUBLE DEFAULT 0 NOT NULL,
zoom INT DEFAULT 0 NOT NULL);
CREATE TABLE device (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(128) NOT NULL,
uniqueId VARCHAR(128) NOT NULL UNIQUE,
status VARCHAR(128),
lastUpdate TIMESTAMP,
positionId INT,
dataId INT);
CREATE TABLE user_device (
userId INT NOT NULL,
deviceId INT NOT NULL,
`read` BOOLEAN DEFAULT true NOT NULL,
`write` BOOLEAN DEFAULT true NOT NULL,
FOREIGN KEY (userId) REFERENCES user(id) ON DELETE CASCADE,
FOREIGN KEY (deviceId) REFERENCES device(id) ON DELETE CASCADE);
CREATE TABLE position (
id INT PRIMARY KEY AUTO_INCREMENT,
protocol VARCHAR(128),
deviceId INT NOT NULL,
serverTime TIMESTAMP NOT NULL,
deviceTime TIMESTAMP NOT NULL,
fixTime TIMESTAMP NOT NULL,
valid BOOLEAN NOT NULL,
latitude DOUBLE NOT NULL,
longitude DOUBLE NOT NULL,
altitude DOUBLE NOT NULL,
speed DOUBLE NOT NULL,
course DOUBLE NOT NULL,
address VARCHAR(512),
other VARCHAR(4096) NOT NULL,
FOREIGN KEY (deviceId) REFERENCES device(id) ON DELETE CASCADE);
CREATE INDEX position_deviceId_fixTime ON `position`(deviceId, fixTime);
CREATE TABLE data (
id INT PRIMARY KEY AUTO_INCREMENT,
protocol VARCHAR(128),
deviceId INT NOT NULL,
serverTime TIMESTAMP NOT NULL,
deviceTime TIMESTAMP NOT NULL,
other VARCHAR(4096) NOT NULL,
FOREIGN KEY (deviceId) REFERENCES device(id));
ALTER TABLE device ADD
FOREIGN KEY (positionId) REFERENCES `position`(id);
ALTER TABLE device ADD
FOREIGN KEY (dataId) REFERENCES data(id);
CREATE TABLE server (
id INT PRIMARY KEY AUTO_INCREMENT,
registration BOOLEAN NOT NULL,
latitude DOUBLE NOT NULL,
longitude DOUBLE NOT NULL,
zoom INT NOT NULL);
CREATE TABLE traccar (
id INT PRIMARY KEY AUTO_INCREMENT);
SELECT * FROM server;
INSERT INTO server (registration, latitude, longitude, zoom)
VALUES (:registration, :latitude, :longitude, :zoom);
UPDATE server SET registration = :registration WHERE id = :id;
SELECT * FROM user
WHERE email = :email;
SELECT * FROM user;
INSERT INTO user (name, email, hashedPassword, salt, admin)
VALUES (:name, :email, :hashedPassword, :salt, :admin);
UPDATE user SET name = :name, email = :email, admin = :admin
WHERE id = :id;
UPDATE user SET hashedPassword = :hashedPassword, salt = :salt WHERE id = :id;
DELETE FROM user WHERE id = :id;
SELECT userId, deviceId FROM user_device;
SELECT * FROM device;
SELECT * FROM device d INNER JOIN user_device ud ON d.id = ud.deviceId WHERE ud.userId = :userId;
INSERT INTO device (name, uniqueId) VALUES (:name, :uniqueId);
UPDATE device SET name = :name, uniqueId = :uniqueId WHERE id = :id;
DELETE FROM device WHERE id = :id;
INSERT INTO user_device (userId, deviceId) VALUES (:userId, :deviceId);
SELECT * FROM position WHERE deviceId = :deviceId AND fixTime BETWEEN :from AND :to;
INSERT INTO position (deviceId, serverTime, deviceTime, fixTime, valid, latitude, longitude, altitude, speed, course, address, other)
VALUES (:deviceId, NOW(), :time, :time, :valid, :latitude, :longitude, :altitude, :speed, :course, :address, :other);
SELECT * FROM position WHERE id IN (SELECT positionId FROM device);
UPDATE device SET positionId = :id WHERE id = :deviceId;
5000
5001
5002
5003
5004
5005
5006
false
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087