Problem when upgrading from version 2.7 to 3.2

Good afternoon, when I update SeaTable from version 2.7 to version 3.2, an error occurs at the stage of making changes to mysql.

  1. root@*********:/opt/seatable# mysql -h$DB_HOST -p$DB_ROOT_PASSWD dtable_db </opt/seatable/seatable-server-latest/sql/mysql/upgrade/2.7/dtable.sql
    mysql: [Warning] Using a password on the command line interface can be insecure.

  2. root@*********:/opt/seatable# mysql -h$DB_HOST -p$DB_ROOT_PASSWD dtable_db </opt/seatable/seatable-server-latest/sql/mysql/upgrade/3.2/dtable.sql
    mysql: [Warning] Using a password on the command line interface can be insecure.
    ERROR 1054 (42S22) at line 13: Unknown column ‘is_valid’ in ‘dtable_common_dataset_sync’

After that, the SeaTable site throws an error. “Sorry, but the requested page is unavailable due to a server hiccup. Our engineers have been notified, so check back later.”

Can you tell me how to fix it?

When upgrading from 2.7 to 3.2, please run the db update scripts included in 2.8, 3.0, 3.1 and 3.2 as explained in the manual.

Additionally, pay attention to the special upgrade notice for SeaTable 3.2.

Most likely, due to the inaccuracy of the automatic translation of the instructions, something has to be thought out (figure it out)… Now I’m trying to update step by step, to version 2.8.0, but again at the step of making changes to mysql, the system throws an error. Updating according to the instructions:

  1. docker pull seatable/seatable-developer:2.8.0

  2. docker-compose down

  3. docker-compose up -d

  4. docker exec -it seatable /bin/bash

  5. mysql -h$DB_HOST -p$DB_ROOT_PASSWD dtable_db </opt/seatable/seatable-server-latest/sql/mysql/upgrade/2.7/dtable.sql

  6. root@****:/opt/seatable# mysql -h$DB_HOST -p$DB_ROOT_PASSWD dtable_db </opt/seatable/seatable-server-latest/sql/mysql/upgrade/2.8/dtable.sql
    bash: /opt/seatable/seatable-server-latest/sql/mysql/upgrade/2.8/dtable.sql: No such file or directory

the last specified version in this directory is 2.7

The manual is not automatically translated and I think specific. It states explicitly: “If you upgrade several versions at once, just run all the database upgrade statement one by one, starting from the lowest version.”

The problem is probably your docker-compose file in which you have specified image 2.7 rather than latest or 2.8

I don’t understand exactly when it is necessary to specify the version in docker-compose.yml. Before the update, the latest is specified. If I point to the command “docker-compose up -d”, the system swears:
ERROR: manifest for seatable/seatable-developer:2.8 not found

If I specify later, the “No such file or directory” error is repeated.


This is docker-compose.yml, it has the latest specified.

Perhaps there is a simpler solution to installing a clean version 3.2 and copying the entire database from version 2.7?

Run “docker pull seatable/seatable-developer:latest”
or
replace image: seatable/seatable-developer:latest with image: seatable/seatable-developer:2.8.0

Then retry.

On a more general note, I suggest you familiarize yourself with Docker. This is your server, so you are responsible.

1 Like

I agree, my knowledge of Docker needs to be improved… However, now I think I managed to upgrade, but now the system cannot authorize me. I enter my username and password and after clicking the “Log in” button, nothing happens…

*When I enter the correct username and password, nothing happens, if I make a mistake, the system displays the error “Incorrect account or password”

Hey eash,
please check your logs at the moment you try to login. I would recomment to do it this way:

$ cd /opt/seatable/seatable-data/seatable/logs
$ tail -f ./*
$ # hit enter some times to create some space to your last log entries...

Now you can login and you should see if there are some errors that could help to understand what happens.

Good afternoon, I repeated the installation several times (thank God for the snapshots). In the end, everything worked out. I describe all the actions that I did.

user@seatable:~$ su
Password:***

root@seatable:/home/user# docker pull seatable/seatable-developer:latest

root@seatable:~# cd /opt/seatable/

root@seatable:/opt/seatable# docker-compose down

root@seatable:/opt/seatable# docker-compose up -d

root@seatable:/opt/seatable# docker exec -it seatable /bin/bash

root@***:/opt/seatable# mysql -h$DB_HOST -p$DB_ROOT_PASSWD dtable_db </opt/seatable/seatable-server-latest/sql/mysql/upgrade/2.7/dtable.sql

root@***:/opt/seatable# mysql -h$DB_HOST -p$DB_ROOT_PASSWD dtable_db </opt/seatable/seatable-server-latest/sql/mysql/upgrade/2.8/dtable.sql

root@***:/opt/seatable# exit

root@seatable:/opt/seatable# docker exec -d seatable /shared/seatable/scripts/seatable.sh init

root@seatable:/opt/seatable# cd seatable-data/seatable/conf

root@seatable:/opt/seatable/seatable-data/seatable/conf# nano dtable_web_settings.py # As in the instructions.

root@seatable:/opt/seatable/seatable-data/seatable/conf# nano dtable-db.conf # As in the instructions.

root@seatable:/opt/seatable# docker exec -it seatable /bin/bash

root@***:/opt/seatable# mysql -h$DB_HOST -p$DB_ROOT_PASSWD dtable_db </opt/seatable/seatable-server-latest/sql/mysql/upgrade/3.0/dtable.sql

root@***:/opt/seatable# mysql -h$DB_HOST -p$DB_ROOT_PASSWD dtable_db </opt/seatable/seatable-server-latest/sql/mysql/upgrade/3.1/dtable.sql

root@***:/opt/seatable# mysql -h$DB_HOST -p$DB_ROOT_PASSWD dtable_db </opt/seatable/seatable-server-latest/sql/mysql/upgrade/3.2/dtable.sql

root@***:/opt/seatable# exit

root@seatable:/opt/seatable# docker exec -d seatable /shared/seatable/scripts/seatable.sh start

And yet, it seems to me there is a small problem with automatic translation) Thank you for your patience!)

I asked it earlier, I am asking it here again: What automatic translation are you talking about?

I am a Russian speaker, the instructions are in English. I have to use a translator.

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