[GH-ISSUE #2432] Fail upgrade v2.1.0 to v2.2.0 with Docker ENV #6671

Closed
opened 2026-04-20 17:15:40 -05:00 by GiteaMirror · 3 comments
Owner

Originally created by @leonanu on GitHub (Mar 20, 2026).
Original GitHub issue: https://github.com/go-vikunja/vikunja/issues/2432

Pre-submission checklist

  • I have searched for existing open or closed issue reports with the same problem.

Description

time=2026-03-20T23:47:46.698+08:00 level=ERROR msg="Migration failed: migration 20260224215050 failed: Error 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF NOT EXISTS IDX_webhooks_user_id ON webhooks (user_id)' at line 1"
2026/03/20 23:47:53 failed to create modcache index dir: mkdir /.cache: permission denied
time=2026-03-20T23:47:53.507+08:00 level=INFO msg="Using config file: /etc/vikunja/config.yml"
time=2026-03-20T23:47:53.508+08:00 level=INFO msg="Running migrations…"

Vikunja Version

v2.2.0

MySQL Version

v8.4.8

Browser and version

Chrome 146.0.7680.154

Can you reproduce the bug on the Vikunja demo site?

Yes

Screenshots

No response

Originally created by @leonanu on GitHub (Mar 20, 2026). Original GitHub issue: https://github.com/go-vikunja/vikunja/issues/2432 ### Pre-submission checklist - [x] I have searched for existing open or closed issue reports with the same problem. ### Description ``` time=2026-03-20T23:47:46.698+08:00 level=ERROR msg="Migration failed: migration 20260224215050 failed: Error 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF NOT EXISTS IDX_webhooks_user_id ON webhooks (user_id)' at line 1" 2026/03/20 23:47:53 failed to create modcache index dir: mkdir /.cache: permission denied time=2026-03-20T23:47:53.507+08:00 level=INFO msg="Using config file: /etc/vikunja/config.yml" time=2026-03-20T23:47:53.508+08:00 level=INFO msg="Running migrations…" ``` ### Vikunja Version v2.2.0 ### MySQL Version v8.4.8 ### Browser and version Chrome 146.0.7680.154 ### Can you reproduce the bug on the Vikunja demo site? Yes ### Screenshots _No response_
Author
Owner

@leonanu commented on GitHub (Mar 20, 2026):

This's my config.yml(where XXX are sensitive info)

service:
  # Whether to let new users registering themselves or not
  enableregistration: false
  # If true, will allow users to request the complete deletion of their account. When using external authentication methods 
  # it may be required to coordinate with them in order to delete the account. This setting will not affect the cli commands
  # for user deletion.
  enableuserdeletion: true
  # This token is used to verify issued JWT tokens.
  # Default is a random token which will be generated at each startup of Vikunja.
  # (This means all already issued tokens will be invalid once you restart Vikunja)
  JWTSecret: "XXX"
  # The duration of the issued JWT tokens in seconds.
  # The default is 259200 seconds (3 Days).
  jwtttl: 259200
  # The duration of the "remember me" time in seconds. When the login request is made with
  # the long param set, the token returned will be valid for this period.
  # The default is 2592000 seconds (30 Days).
  jwtttllong: 2592000
  # The interface on which to run the webserver
  interface: ":3456"
  # The URL of the frontend, used to send password reset emails.
  frontendurl: "https://XXX"
  # The public facing URL where your users can reach Vikunja. Used in emails and for the communication between api and frontend. The url must be a valid http or https url. This setting is required when cors.enable is true.
  publicurl: "https://XXX"
  # The time zone all timestamps are in. Please note that time zones have to use [the official tz database names](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). UTC or GMT offsets won't work.
  timezone: "Asia/Shanghai"


database:
  # Database type to use. Supported values are mysql, postgres and sqlite. Vikunja is able to run with MySQL 8.0+, Mariadb 10.2+, PostgreSQL 12+, and sqlite.
  type: "mysql"
  # Database user which is used to connect to the database.
  user: "vikunja"
  # Database password
  password: "vikunja"
  # Database host
  host: "XXX"
  # Database to use
  database: "vikunja"


files:
  # The path where files are stored
  basepath: ./files # relative to the binary
  # The maximum size of a file, as a human-readable string.
  # Warning: The max size is limited 2^64-1 bytes due to the underlying datatype
  maxsize: 300MB


mailer:
  # Whether to enable the mailer or not. If it is disabled, all users are enabled right away and password reset is not possible.
  enabled: true
  # SMTP Host
  host: "XXX"
  # SMTP Host port.
  # **NOTE:** If you're unable to send mail and the only error you see in the logs is an `EOF`, try setting the port to `25`.
  port: 465
  # SMTP Auth Type. Can be either `plain`, `login` or `cram-md5`.
  authtype: "login"
  # SMTP username
  username: "XXX"
  # SMTP password
  password: "XXX"
  # Wether to skip verification of the tls certificate on the server
  skiptlsverify: false
  # The default from address when sending emails
  fromemail: "XXX"
  # The length of the mail queue.
  queuelength: 100
  # The timeout in seconds after which the current open connection to the mailserver will be closed.
  queuetimeout: 30
  # By default, vikunja will try to connect with starttls, use this option to force it to use ssl.
  forcessl: true
<!-- gh-comment-id:4099305117 --> @leonanu commented on GitHub (Mar 20, 2026): This's my config.yml(where XXX are sensitive info) ``` service: # Whether to let new users registering themselves or not enableregistration: false # If true, will allow users to request the complete deletion of their account. When using external authentication methods # it may be required to coordinate with them in order to delete the account. This setting will not affect the cli commands # for user deletion. enableuserdeletion: true # This token is used to verify issued JWT tokens. # Default is a random token which will be generated at each startup of Vikunja. # (This means all already issued tokens will be invalid once you restart Vikunja) JWTSecret: "XXX" # The duration of the issued JWT tokens in seconds. # The default is 259200 seconds (3 Days). jwtttl: 259200 # The duration of the "remember me" time in seconds. When the login request is made with # the long param set, the token returned will be valid for this period. # The default is 2592000 seconds (30 Days). jwtttllong: 2592000 # The interface on which to run the webserver interface: ":3456" # The URL of the frontend, used to send password reset emails. frontendurl: "https://XXX" # The public facing URL where your users can reach Vikunja. Used in emails and for the communication between api and frontend. The url must be a valid http or https url. This setting is required when cors.enable is true. publicurl: "https://XXX" # The time zone all timestamps are in. Please note that time zones have to use [the official tz database names](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). UTC or GMT offsets won't work. timezone: "Asia/Shanghai" database: # Database type to use. Supported values are mysql, postgres and sqlite. Vikunja is able to run with MySQL 8.0+, Mariadb 10.2+, PostgreSQL 12+, and sqlite. type: "mysql" # Database user which is used to connect to the database. user: "vikunja" # Database password password: "vikunja" # Database host host: "XXX" # Database to use database: "vikunja" files: # The path where files are stored basepath: ./files # relative to the binary # The maximum size of a file, as a human-readable string. # Warning: The max size is limited 2^64-1 bytes due to the underlying datatype maxsize: 300MB mailer: # Whether to enable the mailer or not. If it is disabled, all users are enabled right away and password reset is not possible. enabled: true # SMTP Host host: "XXX" # SMTP Host port. # **NOTE:** If you're unable to send mail and the only error you see in the logs is an `EOF`, try setting the port to `25`. port: 465 # SMTP Auth Type. Can be either `plain`, `login` or `cram-md5`. authtype: "login" # SMTP username username: "XXX" # SMTP password password: "XXX" # Wether to skip verification of the tls certificate on the server skiptlsverify: false # The default from address when sending emails fromemail: "XXX" # The length of the mail queue. queuelength: 100 # The timeout in seconds after which the current open connection to the mailserver will be closed. queuetimeout: 30 # By default, vikunja will try to connect with starttls, use this option to force it to use ssl. forcessl: true ```
Author
Owner

@Anduin2017 commented on GitHub (Mar 22, 2026):

Duplicate #2431 ?

<!-- gh-comment-id:4106155656 --> @Anduin2017 commented on GitHub (Mar 22, 2026): Duplicate #2431 ?
Author
Owner

@leonanu commented on GitHub (Mar 22, 2026):

Duplicate #2431 ?

Yes, the same issue. Thank you! Waitting for next version.Thank you!

<!-- gh-comment-id:4106191709 --> @leonanu commented on GitHub (Mar 22, 2026): > Duplicate [#2431](https://github.com/go-vikunja/vikunja/issues/2431) ? Yes, the same issue. Thank you! Waitting for next version.Thank you!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/vikunja#6671