Upgrade from Seatable 2.4x to 2.5 in docker fails


i tried to update my SeaTable DE instance from 2.4 to 2.5.0 by updating the tag in my docker-compose.yaml and running the following commands:

docker-compose down
docker-compose up
docker exec -d seatable /shared/seatable/scripts/seatable.sh start

the logs show, that SeaTable is seamingly started:

seatable     | *** Running /etc/my_init.d/01_init.sh...
seatable     | *** Booting runit daemon...
seatable     | *** Runit started as PID 16
seatable     | *** Running /templates/enterpoint.sh...
seatable     | 2021-12-14 08:32:14 Conf exists
seatable     | 2021-12-14 08:32:14 Nginx ready
seatable     | 2021-12-14 08:32:14 This is a idle script (infinite loop) to keep container running.

After trying to access the front-page i see this “hiccup” error message:


I already saw this post. But i only have 2 users me and an admin user.

Can anyone help me analysing the issue? Please find below my docker-compose.yml

Thanks and BR

version: '2.0'
     image: mariadb:10.5
     container_name: seatable-mysql
     user: 1000:1000
     restart: always
       - MYSQL_ROOT_PASSWORD=doot  # Requested, set the root's password of MySQL service.
       - MYSQL_LOG_CONSOLE=true
       - /mnt/seatable/db:/var/lib/mysql  # Requested, specifies the path to MySQL data persistent store.
     #  - seatable-net

     image: memcached:1.5.6
     container_name: seatable-memcached
     entrypoint: memcached -m 256
     restart: always
     #  - seatable-net

     image: redis:5.0.7
     container_name: seatable-redis
     restart: always
     #  - seatable-net

     image: seatable/seatable:2.5.0
     container_name: seatable
       - 58080:80
       - 58081:443
       - seatable-shared:/shared  # Requested, specifies the path to Seafile data persistent store.
       - DB_HOST=db
       - DB_ROOT_PASSWD=doot  # Requested, the value should be root's password of MySQL service.
       - SEATABLE_SERVER_LETSENCRYPT=False # Default is False. Whether to use let's encrypt certificate.
       - SEATABLE_SERVER_HOSTNAME=seatable.mydomain.org # Specifies your host name.
       - TIME_ZONE=Etc/UTC # Optional, default is UTC. Should be uncomment and set to your local time zone.
       - db
       - memcached
       - redis
     #  - seatable-net
     restart: on-failure


Please follow these upgrade instructions: Upgrade manual - SeaTable Admin Manual


thanks i tried that, but it seems, that the database is empty:

mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1049 (42000): Unknown database 'dtable_db'

I’m wondering if i dumped the docker volume. But actually i’m mounting a host folder.

If i can’t find any backup of my db. how would i continue? Is there a script to init the db?

Did you use a custom domain? If so, make sure to configure the domain in dtable_web_setting.py. See here: dtable_web_settings.py - SeaTable Admin Manual

Did you start from an earlier version than 2.3? If so, perhaps was the upgrade to 2.3 already problematic. See here: Extra upgrade notices - SeaTable Admin Manual

Yes i am using seatable.mydomain.local (local domain without SSL). I set that up in the docker-compose and it’s also written in the dtable_web_settings.py. Here is the snippet.

# for dtable-server
DTABLE_SERVER_URL = 'http://seatable.mydomain.local/dtable-server/'
DTABLE_SOCKET_URL = 'http://seatable.mydomain.local/'

# for dtable-web
DTABLE_WEB_SERVICE_URL = 'http://seatable.mydomain.local/'

# for dtable-db
DTABLE_DB_URL = 'http://seatable.mydomain.local/dtable-db/'

# for seaf-server
FILE_SERVER_ROOT = 'http://seatable.mydomain.local/seafhttp/'




host =
port = 7777
log_dir = /opt/seatable/logs

data_dir = /opt/seatable/db-data

[dtable cache]
private_key = "***"
dtable_server_url = "http://localhost:5000" # not sure if i have to update this one
total_cache_size = 500

host = "db" # docker internal host name
user = root
password = "***"
db_name = dtable_db

It seems like i need to reinitialize my database (mysql).

After diggin a bit into it i found out that you can also do some db init using the seatable script in /opt/seatable/scripts.

/opt/seatable/scripts/seatable.sh init-sql

After successfully running the script i had to create a super-admin and was able to login. Unfortunately all my data is gone.
I’m just wonderung why it was gone afterwards. I think the folder that i mounted in my docker-compose was empty. I think I’ll check my backups.


This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.