Table 'tc_attributes' already exists

TransitJunky4 years ago

I have seen reference to this in several places in the forums. However, I have not found a solution to 'fixing' it. I also receive errors about tables already existing - and not sure if this is causing any issues. I cannot see the web api, i get:

This site can’t be reached
192.168.0.14 refused to connect.

I tried using localhost as well as my public IP in the traccar.xml file with same results.

Appreciate any help or link to the info I need.

My log from starting service:

2020-07-16 17:50:22  INFO: HikariPool-1 - Starting...
2020-07-16 17:50:24  INFO: HikariPool-1 - Start completed.
2020-07-16 17:50:28  INFO: Clearing database change log checksums
2020-07-16 17:50:28  INFO: SELECT COUNT(*) FROM traccar.DATABASECHANGELOGLOCK
2020-07-16 17:50:28  INFO: SELECT COUNT(*) FROM traccar.DATABASECHANGELOGLOCK
2020-07-16 17:50:28  INFO: SELECT `LOCKED` FROM traccar.DATABASECHANGELOGLOCK WHERE ID=1
2020-07-16 17:50:29  INFO: Successfully acquired change log lock
2020-07-16 17:50:29  INFO: SELECT MD5SUM FROM traccar.DATABASECHANGELOG WHERE MD5SUM IS NOT NULL LIMIT 1
2020-07-16 17:50:29  INFO: UPDATE traccar.DATABASECHANGELOG SET MD5SUM = NULL
2020-07-16 17:50:29  INFO: Successfully released change log lock
2020-07-16 17:50:29  INFO: SELECT COUNT(*) FROM traccar.DATABASECHANGELOGLOCK
2020-07-16 17:50:29  INFO: SELECT COUNT(*) FROM traccar.DATABASECHANGELOGLOCK
2020-07-16 17:50:29  INFO: SELECT `LOCKED` FROM traccar.DATABASECHANGELOGLOCK WHERE ID=1
2020-07-16 17:50:30  INFO: Successfully acquired change log lock
2020-07-16 17:50:30  INFO: Can not use class liquibase.parser.core.yaml.YamlChangeLogParser as a Liquibase service because org.yaml.snakeyaml.constructor.BaseConstructor is not in the clas>
2020-07-16 17:50:30  INFO: Can not use class liquibase.parser.core.json.JsonChangeLogParser as a Liquibase service because org.yaml.snakeyaml.constructor.BaseConstructor is not in the clas>
2020-07-16 17:50:35  INFO: SELECT MD5SUM FROM traccar.DATABASECHANGELOG WHERE MD5SUM IS NOT NULL LIMIT 1
2020-07-16 17:50:35  INFO: SELECT COUNT(*) FROM traccar.DATABASECHANGELOG
2020-07-16 17:50:35  INFO: Reading from traccar.DATABASECHANGELOG
2020-07-16 17:50:35  INFO: SELECT * FROM traccar.DATABASECHANGELOG ORDER BY DATEEXECUTED ASC, ORDEREXECUTED ASC
2020-07-16 17:50:38  INFO: CREATE TABLE traccar.tc_attributes (id INT AUTO_INCREMENT NOT NULL, `description` VARCHAR(4000) NOT NULL, type VARCHAR(128) NOT NULL, attribute VARCHAR(128) NOT >
2020-07-16 17:50:38 ERROR: Change Set changelog-4.0-clean::changelog-4.0-clean::author failed.  Error: Table 'tc_attributes' already exists [Failed SQL: (1050) CREATE TABLE traccar.tc_attr>
2020-07-16 17:50:38  INFO: Successfully released change log lock
2020-07-16 17:50:38 ERROR: Main method error - Table 'tc_attributes' already exists - SQLSyntaxErrorException (... < DataManager:312 < *:90 < Context:292 < Main:137 < ...)

my traccar.xml file:

<entry key='config.default'>./conf/default.xml</entry>
<entry key='database.driver'>com.mysql.cj.jdbc.Driver</entry>
<entry key='database.url'>jdbc:mysql://192.168.0.14:3306/traccar?serverTimezone=UTC&amp;useSSL=false&amp;allowPublicKeyRetrieval=true&amp;allowMultipleQueries=true&amp;autoReconnect=tr>
<entry key='database.user'>transit</entry>
<entry key='database.password'>********</entry>

I haven't made any modifications to the default.xml file

<entry key='web.enable'>true</entry>
<entry key='web.port'>8082</entry>
<entry key='web.path'>./web</entry>
<entry key='web.cacheControl'>max-age=3600,public</entry>
<entry key='web.healthCheck'>true</entry>
<entry key='geocoder.enable'>false</entry>
<entry key='geocoder.type'>google</entry>
<entry key='logger.enable'>true</entry>
<entry key='logger.level'>info</entry>
<entry key='logger.file'>./logs/tracker-server.log</entry>
<entry key='logger.rotate'>true</entry>
<entry key='filter.enable'>true</entry>
<entry key='filter.future'>86400</entry>
<entry key='event.enable'>true</entry>
<entry key='event.ignoreDuplicateAlerts'>true</entry>
<entry key='processing.computedAttributes.enable'>true</entry>
<entry key='processing.engineHours.enable'>true</entry>
<entry key='media.path'>./media</entry>
<entry key='notificator.types'>web,mail</entry>
<entry key='server.statistics'>https://www.traccar.org/analytics/</entry>
<entry key='commands.queueing'>true</entry>
<entry key='database.ignoreUnknown'>true</entry>
<entry key='database.generateQueries'>true</entry>
<entry key='database.changelog'>./schema/changelog-master.xml</entry>
Anton Tananaev4 years ago

Updated the title to reflect the actual error.

TransitJunky4 years ago

Thanks, I got cut and paste happy.

TransitJunky4 years ago

Still running into this error.

What I have done: Stop traccar, delete the database, recreate it, and start the service

sudo systemctl stop traccar.service
sudo mysql
drop database traccar
create database traccar
quit
sudo systemctl start traccar.service

It creates all the tables, then goes into waiting for changeloglock

2020-07-26 23:50:45  INFO: HikariPool-1 - Starting...
2020-07-26 23:50:48  INFO: HikariPool-1 - Start completed.
2020-07-26 23:50:52  INFO: Clearing database change log checksums
2020-07-26 23:50:52  INFO: SELECT COUNT(*) FROM traccar.DATABASECHANGELOGLOCK
2020-07-26 23:50:52  INFO: CREATE TABLE traccar.DATABASECHANGELOGLOCK (ID INT NOT NULL, `LOCKED` BIT(1) NOT NULL, LOCKGRANTED datetime NULL, LOCKEDBY VARCHAR(255) NULL, CONSTRAINT PK_DATABASECHANGELOGLOCK PRIMARY KEY (ID))
2020-07-26 23:50:53  INFO: SELECT COUNT(*) FROM traccar.DATABASECHANGELOGLOCK
2020-07-26 23:50:53  INFO: DELETE FROM traccar.DATABASECHANGELOGLOCK
2020-07-26 23:50:53  INFO: INSERT INTO traccar.DATABASECHANGELOGLOCK (ID, `LOCKED`) VALUES (1, 0)
2020-07-26 23:50:53  INFO: SELECT `LOCKED` FROM traccar.DATABASECHANGELOGLOCK WHERE ID=1
2020-07-26 23:50:54  INFO: Successfully acquired change log lock
2020-07-26 23:50:54  INFO: Creating database history table with name: traccar.DATABASECHANGELOG
2020-07-26 23:50:54  INFO: CREATE TABLE traccar.DATABASECHANGELOG (ID VARCHAR(255) NOT NULL, AUTHOR VARCHAR(255) NOT NULL, FILENAME VARCHAR(255) NOT NULL, DATEEXECUTED datetime NOT NULL, ORDEREXECUTED INT NOT NULL, EXECTYPE VARCHAR(10) NOT NULL, MD5SUM VARCHAR(35) NULL, `DESCRIPTION` VARCHAR(255) NULL, COMMENTS VARCHAR(255) NULL, TAG VARCHAR(255) NULL, LIQUIBASE VARCHAR(20) NULL, CONTEXTS VARCHAR(255) NULL, LABELS VARCHAR(255) NULL, DEPLOYMENT_ID VARCHAR(10) NULL)
2020-07-26 23:50:54  INFO: SELECT COUNT(*) FROM traccar.DATABASECHANGELOGLOCK
2020-07-26 23:50:54  INFO: UPDATE traccar.DATABASECHANGELOG SET MD5SUM = NULL
2020-07-26 23:50:55  INFO: Successfully released change log lock
2020-07-26 23:50:55  INFO: SELECT COUNT(*) FROM traccar.DATABASECHANGELOGLOCK
2020-07-26 23:50:55  INFO: SELECT COUNT(*) FROM traccar.DATABASECHANGELOGLOCK
2020-07-26 23:50:55  INFO: SELECT `LOCKED` FROM traccar.DATABASECHANGELOGLOCK WHERE ID=1
2020-07-26 23:50:55  INFO: Successfully acquired change log lock
2020-07-26 23:50:55  INFO: Can not use class liquibase.parser.core.json.JsonChangeLogParser as a Liquibase service because org.yaml.snakeyaml.constructor.BaseConstructor is not in the classpath
2020-07-26 23:50:55  INFO: Can not use class liquibase.parser.core.yaml.YamlChangeLogParser as a Liquibase service because org.yaml.snakeyaml.constructor.BaseConstructor is not in the classpath
2020-07-26 23:51:00  INFO: SELECT MD5SUM FROM traccar.DATABASECHANGELOG WHERE MD5SUM IS NOT NULL LIMIT 1
2020-07-26 23:51:00  INFO: SELECT COUNT(*) FROM traccar.DATABASECHANGELOG
2020-07-26 23:51:00  INFO: Reading from traccar.DATABASECHANGELOG
2020-07-26 23:51:00  INFO: SELECT * FROM traccar.DATABASECHANGELOG ORDER BY DATEEXECUTED ASC, ORDEREXECUTED ASC
2020-07-26 23:51:03  INFO: CREATE TABLE traccar.tc_attributes (id INT AUTO_INCREMENT NOT NULL, `description` VARCHAR(4000) NOT NULL, type VARCHAR(128) NOT NULL, attribute VARCHAR(128) NOT NULL, expression VARCHAR(4000) NOT NULL, CONSTRAINT PK_TC_ATTRIBUTES PRIMARY KEY (id))
2020-07-26 23:51:03  INFO: Table tc_attributes created
2020-07-26 23:51:03  INFO: CREATE TABLE traccar.tc_calendars (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(128) NOT NULL, data MEDIUMBLOB NOT NULL, attributes VARCHAR(4000) NOT NULL, CONSTRAINT PK_TC_CALENDARS PRIMARY KEY (id))
2020-07-26 23:51:05  INFO: Table tc_calendars created
2020-07-26 23:51:05  INFO: CREATE TABLE traccar.tc_commands (id INT AUTO_INCREMENT NOT NULL, `description` VARCHAR(4000) NOT NULL, type VARCHAR(128) NOT NULL, textchannel BIT(1) DEFAULT 0 NOT NULL, attributes VARCHAR(4000) NOT NULL, CONSTRAINT PK_TC_COMMANDS PRIMARY KEY (id))
2020-07-26 23:51:05  INFO: Table tc_commands created
2020-07-26 23:51:05  INFO: CREATE TABLE traccar.tc_device_attribute (deviceid INT NOT NULL, attributeid INT NOT NULL)
2020-07-26 23:51:06  INFO: Table tc_device_attribute created
2020-07-26 23:51:06  INFO: CREATE TABLE traccar.tc_device_command (deviceid INT NOT NULL, commandid INT NOT NULL)
2020-07-26 23:51:07  INFO: Table tc_device_command created
2020-07-26 23:51:07  INFO: CREATE TABLE traccar.tc_device_driver (deviceid INT NOT NULL, driverid INT NOT NULL)
2020-07-26 23:51:08  INFO: Table tc_device_driver created
2020-07-26 23:51:08  INFO: CREATE TABLE traccar.tc_device_geofence (deviceid INT NOT NULL, geofenceid INT NOT NULL)
2020-07-26 23:51:08  INFO: Table tc_device_geofence created
2020-07-26 23:51:08  INFO: CREATE TABLE traccar.tc_device_maintenance (deviceid INT NOT NULL, maintenanceid INT NOT NULL)
2020-07-26 23:51:10  INFO: Table tc_device_maintenance created
2020-07-26 23:51:10  INFO: CREATE TABLE traccar.tc_device_notification (deviceid INT NOT NULL, notificationid INT NOT NULL)
2020-07-26 23:51:10  INFO: Table tc_device_notification created
2020-07-26 23:51:10  INFO: CREATE TABLE traccar.tc_devices (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(128) NOT NULL, uniqueid VARCHAR(128) NOT NULL, lastupdate timestamp NULL, positionid INT NULL, groupid INT NULL, attributes VARCHAR(4000) NULL, phone VARCHAR(128) NULL, model VARCHAR(128) NULL, contact VARCHAR(512) NULL, category VARCHAR(128) NULL, disabled BIT(1) DEFAULT 0 NULL, CONSTRAINT PK_TC_DEVICES PRIMARY KEY (id), UNIQUE (uniqueid))
2020-07-26 23:51:11  INFO: Table tc_devices created
2020-07-26 23:51:11  INFO: CREATE TABLE traccar.tc_drivers (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(128) NOT NULL, uniqueid VARCHAR(128) NOT NULL, attributes VARCHAR(4000) NOT NULL, CONSTRAINT PK_TC_DRIVERS PRIMARY KEY (id), UNIQUE (uniqueid))
2020-07-26 23:51:12  INFO: Table tc_drivers created
2020-07-26 23:51:12  INFO: CREATE TABLE traccar.tc_events (id INT AUTO_INCREMENT NOT NULL, type VARCHAR(128) NOT NULL, servertime timestamp NOT NULL, deviceid INT NULL, positionid INT NULL, geofenceid INT NULL, attributes VARCHAR(4000) NULL, maintenanceid INT NULL, CONSTRAINT PK_TC_EVENTS PRIMARY KEY (id))
2020-07-26 23:51:13  INFO: Table tc_events created
2020-07-26 23:51:13  INFO: CREATE TABLE traccar.tc_geofences (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(128) NOT NULL, `description` VARCHAR(128) NULL, area VARCHAR(4096) NOT NULL, attributes VARCHAR(4000) NULL, calendarid INT NULL, CONSTRAINT PK_TC_GEOFENCES PRIMARY KEY (id))
2020-07-26 23:51:14  INFO: Table tc_geofences created
2020-07-26 23:51:14  INFO: CREATE TABLE traccar.tc_group_attribute (groupid INT NOT NULL, attributeid INT NOT NULL)
2020-07-26 23:51:15  INFO: Table tc_group_attribute created
2020-07-26 23:51:15  INFO: CREATE TABLE traccar.tc_group_command (groupid INT NOT NULL, commandid INT NOT NULL)
2020-07-26 23:51:16  INFO: Table tc_group_command created
2020-07-26 23:51:16  INFO: CREATE TABLE traccar.tc_group_driver (groupid INT NOT NULL, driverid INT NOT NULL)
2020-07-26 23:51:16  INFO: Table tc_group_driver created
2020-07-26 23:51:16  INFO: CREATE TABLE traccar.tc_group_geofence (groupid INT NOT NULL, geofenceid INT NOT NULL)
2020-07-26 23:51:17  INFO: Table tc_group_geofence created
2020-07-26 23:51:17  INFO: CREATE TABLE traccar.tc_group_maintenance (groupid INT NOT NULL, maintenanceid INT NOT NULL)
2020-07-26 23:51:18  INFO: Table tc_group_maintenance created
2020-07-26 23:51:18  INFO: CREATE TABLE traccar.tc_group_notification (groupid INT NOT NULL, notificationid INT NOT NULL)
2020-07-26 23:51:18  INFO: Table tc_group_notification created
2020-07-26 23:51:18  INFO: CREATE TABLE traccar.tc_groups (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(128) NOT NULL, groupid INT NULL, attributes VARCHAR(4000) NULL, CONSTRAINT PK_TC_GROUPS PRIMARY KEY (id))
2020-07-26 23:51:19  INFO: Table tc_groups created
2020-07-26 23:51:19  INFO: CREATE TABLE traccar.tc_maintenances (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(4000) NOT NULL, type VARCHAR(128) NOT NULL, start DOUBLE DEFAULT 0 NOT NULL, period DOUBLE DEFAULT 0 NOT NULL, attributes VARCHAR(4000) NOT NULL, CONSTRAINT PK_TC_MAINTENANCES PRIMARY KEY (id))
2020-07-26 23:51:20  INFO: Table tc_maintenances created
2020-07-26 23:51:20  INFO: CREATE TABLE traccar.tc_notifications (id INT AUTO_INCREMENT NOT NULL, type VARCHAR(128) NOT NULL, attributes VARCHAR(4000) NULL, always BIT(1) DEFAULT 0 NOT NULL, calendarid INT NULL, notificators VARCHAR(128) NULL, CONSTRAINT PK_TC_NOTIFICATIONS PRIMARY KEY (id))
2020-07-26 23:51:21  INFO: Table tc_notifications created
2020-07-26 23:51:21  INFO: CREATE TABLE traccar.tc_positions (id INT AUTO_INCREMENT NOT NULL, protocol VARCHAR(128) NULL, deviceid INT NOT NULL, servertime timestamp DEFAULT NOW() NOT NULL, devicetime timestamp NOT NULL, fixtime timestamp NOT NULL, valid BIT(1) NOT NULL, latitude DOUBLE NOT NULL, longitude DOUBLE NOT NULL, altitude FLOAT NOT NULL, speed FLOAT NOT NULL, course FLOAT NOT NULL, address VARCHAR(512) NULL, attributes VARCHAR(4000) NULL, accuracy DOUBLE DEFAULT 0 NOT NULL, network VARCHAR(4000) NULL, CONSTRAINT PK_TC_POSITIONS PRIMARY KEY (id))
2020-07-26 23:51:22  INFO: Table tc_positions created
2020-07-26 23:51:22  INFO: CREATE TABLE traccar.tc_servers (id INT AUTO_INCREMENT NOT NULL, registration BIT(1) DEFAULT 1 NOT NULL, latitude DOUBLE DEFAULT 0 NOT NULL, longitude DOUBLE DEFAULT 0 NOT NULL, zoom INT DEFAULT 0 NOT NULL, map VARCHAR(128) NULL, bingkey VARCHAR(128) NULL, mapurl VARCHAR(512) NULL, readonly BIT(1) DEFAULT 0 NOT NULL, twelvehourformat BIT(1) DEFAULT 0 NOT NULL, attributes VARCHAR(4000) NULL, forcesettings BIT(1) DEFAULT 0 NOT NULL, coordinateformat VARCHAR(128) NULL, devicereadonly BIT(1) DEFAULT 0 NULL, limitcommands BIT(1) DEFAULT 0 NULL, poilayer VARCHAR(512) NULL, CONSTRAINT PK_TC_SERVERS PRIMARY KEY (id))
2020-07-26 23:51:22  INFO: Table tc_servers created
2020-07-26 23:51:22  INFO: CREATE TABLE traccar.tc_statistics (id INT AUTO_INCREMENT NOT NULL, capturetime timestamp NOT NULL, activeusers INT DEFAULT 0 NOT NULL, activedevices INT DEFAULT 0 NOT NULL, requests INT DEFAULT 0 NOT NULL, messagesreceived INT DEFAULT 0 NOT NULL, messagesstored INT DEFAULT 0 NOT NULL, attributes VARCHAR(4096) NOT NULL, mailsent INT DEFAULT 0 NOT NULL, smssent INT DEFAULT 0 NOT NULL, geocoderrequests INT DEFAULT 0 NOT NULL, geolocationrequests INT DEFAULT 0 NOT NULL, CONSTRAINT PK_TC_STATISTICS PRIMARY KEY (id))
2020-07-26 23:51:23  INFO: Table tc_statistics created
2020-07-26 23:51:23  INFO: CREATE TABLE traccar.tc_user_attribute (userid INT NOT NULL, attributeid INT NOT NULL)
2020-07-26 23:51:24  INFO: Table tc_user_attribute created
2020-07-26 23:51:24  INFO: CREATE TABLE traccar.tc_user_calendar (userid INT NOT NULL, calendarid INT NOT NULL)
2020-07-26 23:51:24  INFO: Table tc_user_calendar created
2020-07-26 23:51:24  INFO: CREATE TABLE traccar.tc_user_command (userid INT NOT NULL, commandid INT NOT NULL)
2020-07-26 23:51:25  INFO: Table tc_user_command created
2020-07-26 23:51:25  INFO: CREATE TABLE traccar.tc_user_device (userid INT NOT NULL, deviceid INT NOT NULL)
2020-07-26 23:51:26  INFO: Table tc_user_device created
2020-07-26 23:51:26  INFO: CREATE TABLE traccar.tc_user_driver (userid INT NOT NULL, driverid INT NOT NULL)
2020-07-26 23:51:27  INFO: Table tc_user_driver created
2020-07-26 23:51:27  INFO: CREATE TABLE traccar.tc_user_geofence (userid INT NOT NULL, geofenceid INT NOT NULL)
2020-07-26 23:51:27  INFO: Table tc_user_geofence created
2020-07-26 23:51:27  INFO: CREATE TABLE traccar.tc_user_group (userid INT NOT NULL, groupid INT NOT NULL)
2020-07-26 23:51:28  INFO: Table tc_user_group created
2020-07-26 23:51:28  INFO: CREATE TABLE traccar.tc_user_maintenance (userid INT NOT NULL, maintenanceid INT NOT NULL)
2020-07-26 23:51:29  INFO: Table tc_user_maintenance created
2020-07-26 23:51:29  INFO: CREATE TABLE traccar.tc_user_notification (userid INT NOT NULL, notificationid INT NOT NULL)
2020-07-26 23:51:29  INFO: Table tc_user_notification created
2020-07-26 23:51:29  INFO: CREATE TABLE traccar.tc_user_user (userid INT NOT NULL, manageduserid INT NOT NULL)
2020-07-26 23:51:30  INFO: Table tc_user_user created
2020-07-26 23:51:30  INFO: CREATE TABLE traccar.tc_users (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(128) NOT NULL, email VARCHAR(128) NOT NULL, hashedpassword VARCHAR(128) NULL, salt VARCHAR(128) NULL, readonly BIT(1) DEFAULT 0 NOT NULL, administrator BIT(1) NULL, map VARCHAR(128) NULL, latitude DOUBLE DEFAULT 0 NOT NULL, longitude DOUBLE DEFAULT 0 NOT NULL, zoom INT DEFAULT 0 NOT NULL, twelvehourformat BIT(1) DEFAULT 0 NOT NULL, attributes VARCHAR(4000) NULL, coordinateformat VARCHAR(128) NULL, disabled BIT(1) DEFAULT 0 NULL, expirationtime timestamp NULL, devicelimit INT DEFAULT -1 NULL, token VARCHAR(128) NULL, userlimit INT DEFAULT 0 NULL, devicereadonly BIT(1) DEFAULT 0 NULL, phone VARCHAR(128) NULL, limitcommands BIT(1) DEFAULT 0 NULL, login VARCHAR(128) NULL, poilayer VARCHAR(512) NULL, CONSTRAINT PK_TC_USERS PRIMARY KEY (id), UNIQUE (email))
2020-07-26 23:51:31  INFO: Table tc_users created
2020-07-26 23:51:31  INFO: ALTER TABLE traccar.tc_device_command ADD CONSTRAINT fk_device_command_commandid FOREIGN KEY (commandid) REFERENCES traccar.tc_commands (id) ON DELETE CASCADE
2020-07-26 23:51:33  INFO: Foreign key constraint added to tc_device_command (commandid)
2020-07-26 23:51:33  INFO: ALTER TABLE traccar.tc_device_command ADD CONSTRAINT fk_device_command_deviceid FOREIGN KEY (deviceid) REFERENCES traccar.tc_devices (id) ON DELETE CASCADE
2020-07-26 23:51:35  INFO: Foreign key constraint added to tc_device_command (deviceid)
2020-07-26 23:51:35  INFO: ALTER TABLE traccar.tc_device_driver ADD CONSTRAINT fk_device_driver_deviceid FOREIGN KEY (deviceid) REFERENCES traccar.tc_devices (id) ON DELETE CASCADE
2020-07-26 23:51:38  INFO: Foreign key constraint added to tc_device_driver (deviceid)
2020-07-26 23:51:38  INFO: ALTER TABLE traccar.tc_device_driver ADD CONSTRAINT fk_device_driver_driverid FOREIGN KEY (driverid) REFERENCES traccar.tc_drivers (id) ON DELETE CASCADE
2020-07-26 23:51:40  INFO: Foreign key constraint added to tc_device_driver (driverid)
2020-07-26 23:51:40  INFO: ALTER TABLE traccar.tc_device_geofence ADD CONSTRAINT fk_device_geofence_deviceid FOREIGN KEY (deviceid) REFERENCES traccar.tc_devices (id) ON DELETE CASCADE
2020-07-26 23:51:42  INFO: Foreign key constraint added to tc_device_geofence (deviceid)
2020-07-26 23:51:42  INFO: ALTER TABLE traccar.tc_device_geofence ADD CONSTRAINT fk_device_geofence_geofenceid FOREIGN KEY (geofenceid) REFERENCES traccar.tc_geofences (id) ON DELETE CASCADE
2020-07-26 23:51:45  INFO: Foreign key constraint added to tc_device_geofence (geofenceid)
2020-07-26 23:51:45  INFO: ALTER TABLE traccar.tc_device_maintenance ADD CONSTRAINT fk_device_maintenance_deviceid FOREIGN KEY (deviceid) REFERENCES traccar.tc_devices (id) ON DELETE CASCADE
2020-07-26 23:51:47  INFO: Foreign key constraint added to tc_device_maintenance (deviceid)
2020-07-26 23:51:47  INFO: ALTER TABLE traccar.tc_device_maintenance ADD CONSTRAINT fk_device_maintenance_maintenanceid FOREIGN KEY (maintenanceid) REFERENCES traccar.tc_maintenances (id) ON DELETE CASCADE
2020-07-26 23:51:49  INFO: Foreign key constraint added to tc_device_maintenance (maintenanceid)
2020-07-26 23:51:49  INFO: ALTER TABLE traccar.tc_device_notification ADD CONSTRAINT fk_device_notification_deviceid FOREIGN KEY (deviceid) REFERENCES traccar.tc_devices (id) ON DELETE CASCADE
2020-07-26 23:51:51  INFO: Foreign key constraint added to tc_device_notification (deviceid)
2020-07-26 23:51:51  INFO: ALTER TABLE traccar.tc_device_notification ADD CONSTRAINT fk_device_notification_notificationid FOREIGN KEY (notificationid) REFERENCES traccar.tc_notifications (id) ON DELETE CASCADE
2020-07-26 23:51:54  INFO: Foreign key constraint added to tc_device_notification (notificationid)
2020-07-26 23:51:54  INFO: ALTER TABLE traccar.tc_devices ADD CONSTRAINT fk_devices_groupid FOREIGN KEY (groupid) REFERENCES traccar.tc_groups (id) ON DELETE SET NULL
2020-07-26 23:51:56  INFO: Foreign key constraint added to tc_devices (groupid)
2020-07-26 23:51:56  INFO: ALTER TABLE traccar.tc_events ADD CONSTRAINT fk_events_deviceid FOREIGN KEY (deviceid) REFERENCES traccar.tc_devices (id) ON DELETE CASCADE
2020-07-26 23:51:58  INFO: Foreign key constraint added to tc_events (deviceid)
2020-07-26 23:51:58  INFO: ALTER TABLE traccar.tc_geofences ADD CONSTRAINT fk_geofence_calendar_calendarid FOREIGN KEY (calendarid) REFERENCES traccar.tc_calendars (id) ON DELETE SET NULL
2020-07-26 23:52:00  INFO: Foreign key constraint added to tc_geofences (calendarid)
2020-07-26 23:52:00  INFO: ALTER TABLE traccar.tc_group_attribute ADD CONSTRAINT fk_group_attribute_attributeid FOREIGN KEY (attributeid) REFERENCES traccar.tc_attributes (id) ON DELETE CASCADE
2020-07-26 23:52:02  INFO: Foreign key constraint added to tc_group_attribute (attributeid)
2020-07-26 23:52:02  INFO: ALTER TABLE traccar.tc_group_attribute ADD CONSTRAINT fk_group_attribute_groupid FOREIGN KEY (groupid) REFERENCES traccar.tc_groups (id) ON DELETE CASCADE
2020-07-26 23:52:04  INFO: Foreign key constraint added to tc_group_attribute (groupid)
2020-07-26 23:52:04  INFO: ALTER TABLE traccar.tc_group_command ADD CONSTRAINT fk_group_command_commandid FOREIGN KEY (commandid) REFERENCES traccar.tc_commands (id) ON DELETE CASCADE
2020-07-26 23:52:06  INFO: Foreign key constraint added to tc_group_command (commandid)
2020-07-26 23:52:06  INFO: ALTER TABLE traccar.tc_group_command ADD CONSTRAINT fk_group_command_groupid FOREIGN KEY (groupid) REFERENCES traccar.tc_groups (id) ON DELETE CASCADE
2020-07-26 23:52:08  INFO: Foreign key constraint added to tc_group_command (groupid)
2020-07-26 23:52:08  INFO: ALTER TABLE traccar.tc_group_driver ADD CONSTRAINT fk_group_driver_driverid FOREIGN KEY (driverid) REFERENCES traccar.tc_drivers (id) ON DELETE CASCADE
2020-07-26 23:52:10  INFO: Foreign key constraint added to tc_group_driver (driverid)
2020-07-26 23:52:10  INFO: ALTER TABLE traccar.tc_group_driver ADD CONSTRAINT fk_group_driver_groupid FOREIGN KEY (groupid) REFERENCES traccar.tc_groups (id) ON DELETE CASCADE
2020-07-26 23:52:13  INFO: Foreign key constraint added to tc_group_driver (groupid)
2020-07-26 23:52:13  INFO: ALTER TABLE traccar.tc_group_geofence ADD CONSTRAINT fk_group_geofence_geofenceid FOREIGN KEY (geofenceid) REFERENCES traccar.tc_geofences (id) ON DELETE CASCADE
2020-07-26 23:52:15  INFO: Foreign key constraint added to tc_group_geofence (geofenceid)
2020-07-26 23:52:15  INFO: ALTER TABLE traccar.tc_group_geofence ADD CONSTRAINT fk_group_geofence_groupid FOREIGN KEY (groupid) REFERENCES traccar.tc_groups (id) ON DELETE CASCADE
2020-07-26 23:52:17  INFO: Foreign key constraint added to tc_group_geofence (groupid)
2020-07-26 23:52:17  INFO: ALTER TABLE traccar.tc_group_maintenance ADD CONSTRAINT fk_group_maintenance_groupid FOREIGN KEY (groupid) REFERENCES traccar.tc_groups (id) ON DELETE CASCADE
2020-07-26 23:52:19  INFO: Foreign key constraint added to tc_group_maintenance (groupid)
2020-07-26 23:52:19  INFO: ALTER TABLE traccar.tc_group_maintenance ADD CONSTRAINT fk_group_maintenance_maintenanceid FOREIGN KEY (maintenanceid) REFERENCES traccar.tc_maintenances (id) ON DELETE CASCADE
2020-07-26 23:52:22  INFO: Foreign key constraint added to tc_group_maintenance (maintenanceid)
2020-07-26 23:52:22  INFO: ALTER TABLE traccar.tc_group_notification ADD CONSTRAINT fk_group_notification_groupid FOREIGN KEY (groupid) REFERENCES traccar.tc_groups (id) ON DELETE CASCADE
2020-07-26 23:52:36  INFO: HikariPool-1 - Starting...
2020-07-26 23:52:39  INFO: HikariPool-1 - Start completed.
2020-07-26 23:52:43  INFO: Clearing database change log checksums
2020-07-26 23:52:43  INFO: SELECT COUNT(*) FROM traccar.DATABASECHANGELOGLOCK
2020-07-26 23:52:43  INFO: SELECT COUNT(*) FROM traccar.DATABASECHANGELOGLOCK
2020-07-26 23:52:43  INFO: SELECT `LOCKED` FROM traccar.DATABASECHANGELOGLOCK WHERE ID=1
2020-07-26 23:52:43  INFO: Waiting for changelog lock....
2020-07-26 23:52:53  INFO: SELECT `LOCKED` FROM traccar.DATABASECHANGELOGLOCK WHERE ID=1
2020-07-26 23:52:53  INFO: Waiting for changelog lock....
2020-07-26 23:53:03  INFO: SELECT `LOCKED` FROM traccar.DATABASECHANGELOGLOCK WHERE ID=1
2020-07-26 23:53:03  INFO: Waiting for changelog lock....
2020-07-26 23:53:13  INFO: SELECT `LOCKED` FROM traccar.DATABASECHANGELOGLOCK WHERE ID=1
2020-07-26 23:53:13  INFO: Waiting for changelog lock....
2020-07-26 23:53:23  INFO: SELECT `LOCKED` FROM traccar.DATABASECHANGELOGLOCK WHERE ID=1
2020-07-26 23:53:23  INFO: Waiting for changelog lock....
2020-07-26 23:53:33  INFO: SELECT `LOCKED` FROM traccar.DATABASECHANGELOGLOCK WHERE ID=1
2020-07-26 23:53:33  INFO: Waiting for changelog lock....
2020-07-26 23:53:43  INFO: SELECT `LOCKED` FROM traccar.DATABASECHANGELOGLOCK WHERE ID=1
2020-07-26 23:53:43  INFO: Waiting for changelog lock....
2020-07-26 23:53:53  INFO: SELECT `LOCKED` FROM traccar.DATABASECHANGELOGLOCK WHERE ID=1
2020-07-26 23:53:53  INFO: Waiting for changelog lock....
2020-07-26 23:54:03  INFO: SELECT `LOCKED` FROM traccar.DATABASECHANGELOGLOCK WHERE ID=1
2020-07-26 23:54:03  INFO: Waiting for changelog lock....

I stop traccar.service
truncate the table DATABASECHANGELOGLOCK
quit mysql
and start traccar.service

2020-07-27 00:07:27  INFO: HikariPool-1 - Starting...
2020-07-27 00:07:31  INFO: HikariPool-1 - Start completed.
2020-07-27 00:07:34  INFO: Clearing database change log checksums
2020-07-27 00:07:35  INFO: SELECT COUNT(*) FROM traccar.DATABASECHANGELOGLOCK
2020-07-27 00:07:35  INFO: SELECT COUNT(*) FROM traccar.DATABASECHANGELOGLOCK
2020-07-27 00:07:35  INFO: SELECT `LOCKED` FROM traccar.DATABASECHANGELOGLOCK WHERE ID=1
2020-07-27 00:07:35  INFO: Successfully acquired change log lock
2020-07-27 00:07:36  INFO: SELECT MD5SUM FROM traccar.DATABASECHANGELOG WHERE MD5SUM IS NOT NULL LIMIT 1
2020-07-27 00:07:36  INFO: UPDATE traccar.DATABASECHANGELOG SET MD5SUM = NULL
2020-07-27 00:07:36  INFO: Successfully released change log lock
2020-07-27 00:07:36  INFO: SELECT COUNT(*) FROM traccar.DATABASECHANGELOGLOCK
2020-07-27 00:07:36  INFO: SELECT COUNT(*) FROM traccar.DATABASECHANGELOGLOCK
2020-07-27 00:07:36  INFO: SELECT `LOCKED` FROM traccar.DATABASECHANGELOGLOCK WHERE ID=1
2020-07-27 00:07:36  INFO: Successfully acquired change log lock
2020-07-27 00:07:36  INFO: Can not use class liquibase.parser.core.json.JsonChangeLogParser as a Liquibase service because org.yaml.snakeyaml.constructor.BaseConstructor is not in the classpath
2020-07-27 00:07:36  INFO: Can not use class liquibase.parser.core.yaml.YamlChangeLogParser as a Liquibase service because org.yaml.snakeyaml.constructor.BaseConstructor is not in the classpath
2020-07-27 00:07:41  INFO: SELECT MD5SUM FROM traccar.DATABASECHANGELOG WHERE MD5SUM IS NOT NULL LIMIT 1
2020-07-27 00:07:41  INFO: SELECT COUNT(*) FROM traccar.DATABASECHANGELOG
2020-07-27 00:07:41  INFO: Reading from traccar.DATABASECHANGELOG
2020-07-27 00:07:41  INFO: SELECT * FROM traccar.DATABASECHANGELOG ORDER BY DATEEXECUTED ASC, ORDEREXECUTED ASC
2020-07-27 00:07:44  INFO: CREATE TABLE traccar.tc_attributes (id INT AUTO_INCREMENT NOT NULL, `description` VARCHAR(4000) NOT NULL, type VARCHAR(128) NOT NULL, attribute VARCHAR(128) NOT NULL, expression VARCHAR(4000) NOT NULL, CONSTRAINT PK_TC_ATTRIBUTES PRIMARY KEY (id))
2020-07-27 00:07:44 ERROR: Change Set changelog-4.0-clean::changelog-4.0-clean::author failed.  Error: Table 'tc_attributes' already exists [Failed SQL: (1050) CREATE TABLE traccar.tc_attributes (id INT AUTO_INCREMENT NOT NULL, `description` VARCHAR(4000) NOT NULL, type VARCHAR(128) NOT NULL, attribute VARCHAR(128) NOT NULL, expression VARCHAR(4000) NOT NULL, CONSTRAINT PK_TC_ATTRIBUTES PRIMARY KEY (id))]
2020-07-27 00:07:44  INFO: Successfully released change log lock
2020-07-27 00:07:44 ERROR: Main method error - Table 'tc_attributes' already exists - SQLSyntaxErrorException (... < DataManager:312 < *:90 < Context:292 < Main:137 < ...)

This is the endless loop I have put myself in.

<entry key='web.port'>80</entry>
<entry key='geocoder.enable'>false</entry>
<entry key='database.driver'>com.mysql.cj.jdbc.Driver</entry>
<entry key='database.url'>jdbc:mysql://localhost:3306/traccar?allowMultiQueries=true&amp;autoReconnect=true&amp;useUnicode=yes&amp;characterEncoding=UTF-8&amp;sessionVariables=sql_mode=''</entry>
<entry key='database.user'>transit</entry>
<entry key='database.password'>******</entry>

At no time, have I been able to go to localhost:8082 and connect through the web api.

I know I am doing something simple, WRONG. I need help finding it.

Anton Tananaev4 years ago

Looks like it your server restarts before initial migration is finished. Are you using Linux? Try increasing service timeout.

Jan4 years ago
Avant2 years ago

FYI, I was also getting this error "Table 'tc_attributes' already exists" with version 5.4 after migrating from H2 to MySql. All table names were lower case after migration but the DATABASECHANGELOGLOCK and DATABASECHANGELOG table names must be upper case before starting Traccar otherwise it creates empty duplicates and fails to start with this error.