Traccar 4.0 and Postgres

Markus Grotjans6 years ago

Hello,
i have updated from 3.17 to 4.0.
Now the Traccar Service will not run.
I used the 3.17 with Postgres SQL.
When i change to the default traccar.xml conf, that came with 4.0 the Service will start.
If i change to the traccar.xml with Postgres entries, the Service will not run!
I go back to 3.17 and it Works. Service starts with Postgres SQL.

This is what it write in the wrapper.log:

WARNING|wrapper|Service traccar|18-08-09 14:57:35|YAJSW: yajsw-stable-12.12
WARNING|wrapper|Service traccar|18-08-09 14:57:35|OS   : Windows 7/6.1/amd64
WARNING|wrapper|Service traccar|18-08-09 14:57:35|JVM  : Oracle Corporation/1.8.0_171/C:\Program Files\Java\jre1.8.0_171/64
INFO|wrapper|Service traccar|18-08-09 14:57:35|start delay: 0
INFO|wrapper|Service traccar|18-08-09 14:57:35|started process with pid 3940
INFO|3940/0|Service traccar|18-08-09 14:57:36|[INFO] StandardFileSystemManager - Using "C:\Windows\TEMP\vfs_cache" as temporary files store.
INFO|3940/0|Service traccar|18-08-09 14:57:37|SLF4J: Class path contains multiple SLF4J bindings.
INFO|3940/0|Service traccar|18-08-09 14:57:37|SLF4J: Found binding in [jar:file:/C:/Program%20Files/Traccar/lib/slf4j-simple-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
INFO|3940/0|Service traccar|18-08-09 14:57:37|SLF4J: Found binding in [jar:file:/C:/Program%20Files/Traccar/lib/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
INFO|3940/0|Service traccar|18-08-09 14:57:37|SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
INFO|3940/0|Service traccar|18-08-09 14:57:37|SLF4J: Actual binding is of type [org.slf4j.impl.SimpleLoggerFactory]
INFO|3940/0|Service traccar|18-08-09 14:57:37|[main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
INFO|3940/0|Service traccar|18-08-09 14:57:37|[main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
INFO|3940/0|Service traccar|18-08-09 14:57:38|[main] INFO liquibase.Liquibase - Clearing database change log checksums
INFO|3940/0|Service traccar|18-08-09 14:57:38|[main] INFO liquibase.executor.jvm.JdbcExecutor - SELECT COUNT(*) FROM public.databasechangeloglock
INFO|3940/0|Service traccar|18-08-09 14:57:38|[main] INFO liquibase.executor.jvm.JdbcExecutor - SELECT COUNT(*) FROM public.databasechangeloglock
INFO|3940/0|Service traccar|18-08-09 14:57:38|[main] INFO liquibase.executor.jvm.JdbcExecutor - SELECT LOCKED FROM public.databasechangeloglock WHERE ID=1
INFO|3940/0|Service traccar|18-08-09 14:57:38|[main] INFO liquibase.lockservice.StandardLockService - Successfully acquired change log lock
INFO|3940/0|Service traccar|18-08-09 14:57:38|[main] INFO liquibase.executor.jvm.JdbcExecutor - SELECT MD5SUM FROM public.databasechangelog WHERE MD5SUM IS NOT NULL LIMIT 1
INFO|3940/0|Service traccar|18-08-09 14:57:38|[main] INFO liquibase.executor.jvm.JdbcExecutor - UPDATE public.databasechangelog SET MD5SUM = NULL
INFO|3940/0|Service traccar|18-08-09 14:57:38|[main] INFO liquibase.lockservice.StandardLockService - Successfully released change log lock
INFO|3940/0|Service traccar|18-08-09 14:57:38|[main] INFO liquibase.executor.jvm.JdbcExecutor - SELECT COUNT(*) FROM public.databasechangeloglock
INFO|3940/0|Service traccar|18-08-09 14:57:38|[main] INFO liquibase.executor.jvm.JdbcExecutor - SELECT COUNT(*) FROM public.databasechangeloglock
INFO|3940/0|Service traccar|18-08-09 14:57:38|[main] INFO liquibase.executor.jvm.JdbcExecutor - SELECT LOCKED FROM public.databasechangeloglock WHERE ID=1
INFO|3940/0|Service traccar|18-08-09 14:57:38|[main] INFO liquibase.lockservice.StandardLockService - Successfully acquired change log lock
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - SELECT MD5SUM FROM public.databasechangelog WHERE MD5SUM IS NOT NULL LIMIT 1
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - SELECT COUNT(*) FROM public.databasechangelog
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.changelog.StandardChangeLogHistoryService - Reading from public.databasechangelog
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - SELECT * FROM public.databasechangelog ORDER BY DATEEXECUTED ASC, ORDEREXECUTED ASC
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - UPDATE public.databasechangelog SET MD5SUM = '8:ea6f202534dc7845fd1a49e1d8384d9c' WHERE ID = 'changelog-3.3' AND AUTHOR = 'author' AND FILENAME = 'changelog-3.3'
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - UPDATE public.databasechangelog SET MD5SUM = '8:194e3ae7ec6d201917136e04a26e237b' WHERE ID = 'changelog-3.5' AND AUTHOR = 'author' AND FILENAME = 'changelog-3.5'
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - UPDATE public.databasechangelog SET MD5SUM = '8:1ec7941b03749f24e365bc6126b07e1a' WHERE ID = 'changelog-3.6' AND AUTHOR = 'author' AND FILENAME = 'changelog-3.6'
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - UPDATE public.databasechangelog SET MD5SUM = '8:2e444e379f31d0b8e09273ec7ffe87a0' WHERE ID = 'changelog-3.7' AND AUTHOR = 'author' AND FILENAME = 'changelog-3.7'
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - UPDATE public.databasechangelog SET MD5SUM = '8:974c33d2fb399ef6477c3897450fb078' WHERE ID = 'changelog-3.7-notmssql' AND AUTHOR = 'author' AND FILENAME = 'changelog-3.7'
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - UPDATE public.databasechangelog SET MD5SUM = '8:74d68027951f8d2ae6bb2e24df8365bc' WHERE ID = 'changelog-3.8' AND AUTHOR = 'author' AND FILENAME = 'changelog-3.8'
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - UPDATE public.databasechangelog SET MD5SUM = '8:34822842d65deb843a7d16f857d52ecc' WHERE ID = 'changelog-3.9' AND AUTHOR = 'author' AND FILENAME = 'changelog-3.9'
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - UPDATE public.databasechangelog SET MD5SUM = '8:e1ddbe83e1ecf856a912755fc118f82e' WHERE ID = 'changelog-3.10' AND AUTHOR = 'author' AND FILENAME = 'changelog-3.10'
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - UPDATE public.databasechangelog SET MD5SUM = '8:191c21d8f0f921845cf93bbc9d0639b9' WHERE ID = 'changelog-3.10-notmssql' AND AUTHOR = 'author' AND FILENAME = 'changelog-3.10'
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - UPDATE public.databasechangelog SET MD5SUM = '8:ad1f63566e8d08812fbf0b93a118ef6e' WHERE ID = 'changelog-3.10-mssql' AND AUTHOR = 'author' AND FILENAME = 'changelog-3.10'
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - UPDATE public.databasechangelog SET MD5SUM = '8:127b36b9d32a9d236df51d19b18c3766' WHERE ID = 'changelog-3.7-mssql' AND AUTHOR = 'author' AND FILENAME = 'changelog-3.10'
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - UPDATE public.databasechangelog SET MD5SUM = '8:7800f890b9706a480bd5a79b591b6ca7' WHERE ID = 'changelog-3.11' AND AUTHOR = 'author' AND FILENAME = 'changelog-3.11'
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - UPDATE public.databasechangelog SET MD5SUM = '8:5ce520811d626ad325a014b9fcbb1a13' WHERE ID = 'changelog-3.12' AND AUTHOR = 'author' AND FILENAME = 'changelog-3.12'
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - UPDATE public.databasechangelog SET MD5SUM = '8:a3bf7fabcde29e106fe2f89829a76a84' WHERE ID = 'changelog-3.12-notmssql' AND AUTHOR = 'author' AND FILENAME = 'changelog-3.12'
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - UPDATE public.databasechangelog SET MD5SUM = '8:cfc881bd2dadb561aa9c1a467bc8cc1c' WHERE ID = 'changelog-3.12-pgsql' AND AUTHOR = 'author' AND FILENAME = 'changelog-3.12'
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - UPDATE public.databasechangelog SET MD5SUM = '8:1be7e6c0520f8be53ef1b099d96afba5' WHERE ID = 'changelog-3.14' AND AUTHOR = 'author' AND FILENAME = 'changelog-3.14'
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - UPDATE public.databasechangelog SET MD5SUM = '8:ac8ccec176027e98bbf45dc6c15d9b05' WHERE ID = 'changelog-3.15' AND AUTHOR = 'author' AND FILENAME = 'changelog-3.15'
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - UPDATE public.databasechangelog SET MD5SUM = '8:b59407d70bfe9bf57bc9968adfbbdf1c' WHERE ID = 'changelog-3.16' AND AUTHOR = 'author' AND FILENAME = 'changelog-3.16'
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - UPDATE public.databasechangelog SET MD5SUM = '8:3f14c3b08068eb7628d0d3e2941eb2d3' WHERE ID = 'changelog-3.3-admin' AND AUTHOR = 'author' AND FILENAME = 'changelog-3.17'
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - UPDATE public.databasechangelog SET MD5SUM = '8:8aa3e56afe6ba86cd004fa801507bc28' WHERE ID = 'changelog-3.17' AND AUTHOR = 'author' AND FILENAME = 'changelog-3.17'
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - UPDATE public.databasechangelog SET MD5SUM = '8:90aedfa378aa717f8d8ae541f97b87b2' WHERE ID = 'changelog-4.0-renaming' AND AUTHOR = 'author' AND FILENAME = 'changelog-4.0'
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - SELECT COUNT(*) FROM public.databasechangelog
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.changelog.StandardChangeLogHistoryService - Reading from public.databasechangelog
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - SELECT * FROM public.databasechangelog ORDER BY DATEEXECUTED ASC, ORDEREXECUTED ASC
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - ALTER TABLE public.tc_notifications ADD notificators VARCHAR(128)
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.changelog.ChangeSet - Columns notificators(VARCHAR(128)) added to tc_notifications
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.executor.jvm.JdbcExecutor - UPDATE public.tc_notifications SET notificators = 'web,mail,sms' WHERE web = 1 AND mail = 1 AND sms = 1
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] ERROR liquibase.changelog.ChangeSet - Change Set changelog-4.0::changelog-4.0::author failed.  Error: ERROR: operator does not exist: boolean = integer
INFO|3940/0|Service traccar|18-08-09 14:57:40|  Hint: No operator matches the given name and argument type(s). You might need to add explicit type casts.
INFO|3940/0|Service traccar|18-08-09 14:57:40|  Position: 76 [Failed SQL: UPDATE public.tc_notifications SET notificators = 'web,mail,sms' WHERE web = 1 AND mail = 1 AND sms = 1]
INFO|3940/0|Service traccar|18-08-09 14:57:40|[main] INFO liquibase.lockservice.StandardLockService - Successfully released change log lock
INFO|3940/0|Service traccar|18-08-09 14:57:40|java.lang.reflect.InvocationTargetException
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at java.lang.reflect.Method.invoke(Unknown Source)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at org.rzo.yajsw.app.WrapperJVMMain.executeMain(WrapperJVMMain.java:60)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at org.rzo.yajsw.app.WrapperJVMMain.main(WrapperJVMMain.java:43)
INFO|3940/0|Service traccar|18-08-09 14:57:40|Caused by: liquibase.exception.MigrationFailedException: Migration failed for change set changelog-4.0::changelog-4.0::author:
INFO|3940/0|Service traccar|18-08-09 14:57:40|     Reason: liquibase.exception.DatabaseException: ERROR: operator does not exist: boolean = integer
INFO|3940/0|Service traccar|18-08-09 14:57:40|  Hint: No operator matches the given name and argument type(s). You might need to add explicit type casts.
INFO|3940/0|Service traccar|18-08-09 14:57:40|  Position: 76 [Failed SQL: UPDATE public.tc_notifications SET notificators = 'web,mail,sms' WHERE web = 1 AND mail = 1 AND sms = 1]
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at liquibase.changelog.ChangeSet.execute(ChangeSet.java:637)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at liquibase.changelog.visitor.UpdateVisitor.visit(UpdateVisitor.java:53)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at liquibase.changelog.ChangeLogIterator.run(ChangeLogIterator.java:78)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at liquibase.Liquibase.update(Liquibase.java:202)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at liquibase.Liquibase.update(Liquibase.java:179)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at liquibase.Liquibase.update(Liquibase.java:175)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at org.traccar.database.DataManager.initDatabaseSchema(DataManager.java:307)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at org.traccar.database.DataManager.<init>(DataManager.java:88)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at org.traccar.Context.init(Context.java:361)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at org.traccar.Main.main(Main.java:35)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	... 6 more
INFO|3940/0|Service traccar|18-08-09 14:57:40|Caused by: liquibase.exception.DatabaseException: ERROR: operator does not exist: boolean = integer
INFO|3940/0|Service traccar|18-08-09 14:57:40|  Hint: No operator matches the given name and argument type(s). You might need to add explicit type casts.
INFO|3940/0|Service traccar|18-08-09 14:57:40|  Position: 76 [Failed SQL: UPDATE public.tc_notifications SET notificators = 'web,mail,sms' WHERE web = 1 AND mail = 1 AND sms = 1]
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:356)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:57)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:125)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at liquibase.database.AbstractJdbcDatabase.execute(AbstractJdbcDatabase.java:1229)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at liquibase.database.AbstractJdbcDatabase.executeStatements(AbstractJdbcDatabase.java:1211)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at liquibase.changelog.ChangeSet.execute(ChangeSet.java:600)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	... 15 more
INFO|3940/0|Service traccar|18-08-09 14:57:40|Caused by: org.postgresql.util.PSQLException: ERROR: operator does not exist: boolean = integer
INFO|3940/0|Service traccar|18-08-09 14:57:40|  Hint: No operator matches the given name and argument type(s). You might need to add explicit type casts.
INFO|3940/0|Service traccar|18-08-09 14:57:40|  Position: 76
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2440)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2183)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:308)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:441)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:365)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:307)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at org.postgresql.jdbc.PgStatement.executeCachedSql(PgStatement.java:293)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:270)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:266)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:352)
INFO|3940/0|Service traccar|18-08-09 14:57:40|	... 20 more
INFO|wrapper|Service traccar|18-08-09 14:57:41|calling onStop
INFO|wrapper|Service traccar|18-08-09 14:57:41|Win service stop - timeout: 30000
INFO|wrapper|Service traccar|18-08-09 14:57:41|Win service wrapper.control -> stopping application
INFO|wrapper|Service traccar|18-08-09 14:57:41|Win service stop - after shutdown
INFO|wrapper|Service traccar|18-08-09 14:57:41|Win service stop - before notify
INFO|wrapper|Service traccar|18-08-09 14:57:41|Win service terminated
Markus Grotjans6 years ago

Hello.
I found out:
Postgres Database start with 3.17 will work (did the last 6 month)
New installation with 4.0 only add the 4 lines for Postgres in traccar.xml config.
Service will not start. Back to 3.17 Service will not start....

Postgres Database from Backup and 3.17 Service starts. Traccar works.
New installation with 4.0 only add the 4 lines for Postgres in traccar.xml config.
Service will not start. Back to 3.17 Service will not start....

It seems that Traccar 4.0 the Database crashs, It is not possible after deinstall 4.0 an new install 3.17 the Database brings to work.
Only a Database-Backup works.... (only i will not change to Traccar 4.0)

Some ideas????

Anton Tananaev6 years ago
Max6 years ago

Я решил эту проблему путем исправления в файле /opt/traccar/schema/changelog-4.0.xml значений (для блоков "update")
"= 1" на " = true" и
"= 0" на " = false"

Markus Grotjans6 years ago

Thank you but i dont understand russian language.
Is there something to add in changelog-4.0.xml or
change some entries?
Please send an example.
Thank you very much....

Max6 years ago

было

    <update tableName="tc_notifications">
        <column name="notificators" value="web,mail,sms" />
        <where>web = 1 AND mail = 1 AND sms = 1</where>
    </update>

стало

    <update tableName="tc_notifications">
        <column name="notificators" value="web,mail,sms" />
        <where>web = true AND mail = true AND sms = true</where>
    </update>

и так для остальных UPDATE

Markus Grotjans6 years ago

Thats great!
It Works!
Thank you very much for your help!