额外升级步骤说明

4.4

api-gateway

自 4.4 版本开始,我们添加了 api-gateway 组件,默认开启。api-gateway 整合了 dtable-db 和 dtable-server 的 API ,让 API 接口更加简单和一致。

升级的时候,你需要手工为 nginx.conf 添加以下内容

        location /api-gateway/ {
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;
        add_header Access-Control-Allow-Headers "deviceType,token, authorization, content-type";
        if ($request_method = 'OPTIONS') {
            add_header Access-Control-Allow-Origin *;
            add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;
            add_header Access-Control-Allow-Headers "deviceType,token, authorization, content-type";
            return 204;
        }
        proxy_pass         http://127.0.0.1:7780/;
        proxy_redirect     off;
        proxy_set_header   Host              $http_host;
        proxy_set_header   X-Real-IP         $remote_addr;
        proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Host  $server_name;
        proxy_set_header   X-Forwarded-Proto $scheme;
        access_log      /opt/nginx-logs/api-gateway.access.log seatableformat;
        error_log       /opt/nginx-logs/api-gateway.error.log;
    }

total_cache_size

dtable-db 调整了 total_cache_size 配置的语义, 默认值为 500MB。详细配置请参考手册 dtable-db 配置

4.3

自 4.3 版本开始,我们使用了新的方法部署 SeaTable 和 Python 运行器。其中最主要的差别在于

您可以选择继续使用旧的部署方式升级 SeaTable 4.3 (指使用旧版的 docker-compose.yml 文件),也可以手工迁移到新的部署方式 (指使用新版的 docker-compose.yml 和 .env 文件)。

Python 运行器必须使用新的部署方式。

继续使用旧的部署方式升级 SeaTable

运行以下命令获得SeaTable的最新版本.

# 开发者版
docker pull seatable/seatable-developer:latest

# 企业版
docker pull docker.seafile.top/seafileltd/seatable-enterprise:latest

停止当前运行的SeaTable容器.

docker compose down

然后修改 docker-compose.yml 中的标签, 并重新启动一个新的SeaTable容器.

docker compose up -d

升级数据库

docker exec -it seatable /bin/bash        # 登录到 SeaTable 容器. 然后执行upgrade语句
seatable.sh upgrade-sql 4.3

SeaTable 容器将自动启动服务,无需手工操作。

使用新的部署方式升级 SeaTable

详见 使用 Docker 部署 SeaTable 开发者版使用 Docker 部署 SeaTable 企业版

您需要下载新的 .env 和 docker-compose.yml 文件,然后根据旧的配置修改 .env 和 docker-compose.yml 文件。

特别注意需要修改 .env 中的

启动 SeaTable 容器.

docker compose up -d

SeaTable 容器将自动升级数据库,自动启动服务,无需手工操作。

升级 Python 运行器

迁移到新版 Python 运行器的重点在于迁移已有的数据库数据。

备份 Python 运行器数据库数据到主机 /opt/seatable-faas-scheduler/mysql-data/scheduler.sql

docker exec -it seatable-faas-scheduler-mysql bash

/usr/bin/mysqldump -u root -p --opt faas_scheduler > /var/lib/mysql/scheduler.sql

停止当前 Python 运行器

cd /opt/seatable-python-runner
./stop.sh

cd /opt/seatable-faas-scheduler
docker compose down

如果和 SeaTable 部署在同一台机器上

在 SeaTable mysql 中导入Python 运行器数据库数据

# 主机上复制数据
cp  /opt/seatable-faas-scheduler/mysql-data/scheduler.sql /opt/seatable/mysql-data/scheduler.sql 

# mysql 容器中导入数据
docker exec -it seatable-mysql bash
mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS scheduler";
mysql -u root -p scheduler </var/lib/mysql/scheduler.sql

然后按照 部署 SeaTable Python 运行器 安装 Python 运行器。

# scheduler 容器中升级数据库表
docker exec -it python-scheduler bash
mysql -h db -u root -p scheduler </opt/scheduler/upgrade/2.7.0.sql

如果在单独一台机器上部署

按照 部署 SeaTable Python 运行器,并启动 Python 运行器。

导入数据库数据

# 主机上复制数据
cp  /opt/seatable-faas-scheduler/mysql-data/scheduler.sql /opt/seatable-python-pipeline/mysql-data/scheduler.sql 

# mysql 容器中导入数据
docker exec -it python-pipeline-mysql bash
mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS scheduler";
mysql -u root -p scheduler </var/lib/mysql/scheduler.sql

# scheduler 容器中升级数据库表
docker exec -it python-scheduler bash
mysql -h db -u root -p scheduler </opt/scheduler/upgrade/2.7.0.sql

最后重启 Python 运行器

docker compose down
docker compose up -d

4.2

要开启新版组织架构功能,在 dtable_web_settings.py 中增加配置

ENABLE_ADDRESSBOOK_V2 = True 

4.0

增加了以下的可配置项目

1) 回收站自动清空时间间隔,在 dtable_web_settings.py 中增加配置,默认为 30天

TRASH_CLEAN_AFTER_DAYS = 30

2) 可以配置默认的 Seafile 服务器,这样用户在第三方账号中选择对接 Seafile 的时候默认会填写这个配置的 Seafile 服务器的地址。在 dtable_web_settings.py 中增加配置

DEFAULT_SEAFILE_SERVER = 'https://cloud.seafile.com/'

此外,简化了和 Seafile 的对接,不再需要在 Seafile 中开启跨域支持。

3) 简化了增加 Web API 速率控制的配置项,在 dtable_web_settings.py 中

API_THROTTLE_RATES = {
   'ping': '3000/minute',
   'anon': '60/minute',
   'user': '3000/minute',
   'sync_common_dataset': '60/minute',
   'password_reset': '10/minute',
   'org-admin': '1000/day',
   'app': '1000/minute',
   'import': '20/minute',   # 限制导入excel或csv文件到表格的速率
   'export': '20/minute',   # 限制导出base为dtable文件以及导出视图或表格为excel文件的速率
}

4) 企业版 LDAP 支持 SASL 认证,dtable_web_settings.py 中增加了三个配置项

ENABLE_SASL = True
SASL_MECHANISM = 'DIGEST-MD5'
SASL_AUTHC_ID_ATTR = 'cn'

3.5

1) 禁止用户创建个人表格,在 dtable_web_settings.py 中增加配置, 默认为 False

DISABLE_ADDING_PERSONAL_BASES = False

2) 自定义颜色定制, 在 dtable_web_settings.py 中增加配置, 适用于表格中的着色规则,如下:

CUSTOM_COLORS = [
    {'color': '#F5C043', 'text_color': '#212529'},  # color 背景颜色, text_color 文本颜色
    {'color': '#3064BC', 'text_color': '#FFFFFF'},
]

3) API list rows 返回行数限制, 在 dtable_server_config.json 中设置, 默认为 1000

{
  "rows_api_max_limit": 1000,
}

3.2

数据迁移[建议执行], 把 base 数据从 seaf-server中迁移至 dtable-storage-server 中, 需要配置 dtable-storage-sever 组件, 参考 3.0 版本的升级步骤。

此步骤适用于使用过 3.0 之前版本的 seaTable 用户, 直接部署 3.0+ 版本的用户可忽略。

列出数据
docker exec -d seatable /templates/migrate_bases.sh --list

迁移 10 个 base(备份文件夹有默认值)
docker exec -d seatable /templates/migrate_bases.sh --migrate 10

迁移 10 个 base,并指定备份文件夹
docker exec -d seatable /templates/migrate_bases.sh --migrate 10 --backup-folder /shared/migrate-backup/

3.1

没有额外的升级步骤。

如果需要开启通用外部应用(目前只针对企业版),那么需要在 dtable_web_settings.py 中增加设置项。

ENABLE_UNIVERSAL_APP = True

3.0

3.0 版增加了一个额外的组件 dtable-storage-server,提供了性能更好的表格数据的持久化保存。SeaTable 中一个表格保存为一个文件,每 5 分钟自动保存一次。在原来的版本中,这个文件存在 seaf-server 组件中,但是 seaf-server 会给每一次保存保留一个版本,这样会占用比较多的磁盘空间。新的版本中,每 24 小时生成历史镜像的时候才会真正保存一个历史版本,这样节省了空间。dtable-storage-server 是对传统文件系统、对象存储的一个简单的抽象封装。

你需要做一些手工的修改:

1、生成 dtable-storage-server.conf

docker exec -d seatable /shared/seatable/scripts/seatable.sh init

生成的配置文件大致如下:

[general]
log_dir = /opt/seatable/logs
temp_file_dir = /tmp/tmp-storage-data

[storage backend]
type = filesystem
path = /opt/seatable/storage-data

[snapshot]
interval = 86400
keep_days = 180

2、在 dtable_web_settings.py 中增加配置,以便让新创建的表格保存到新的存储中,旧的表格依旧从 seaf-server 中读写

NEW_DTABLE_IN_STORAGE_SERVER = True

3、企业版需要在 dtable-db.conf 中增加配置项,以便把归档后的保存在大数据存储中的数据自动备份起来

[backup]
dtable_storage_server_url = http://127.0.0.1:6666
backup_interval = 1440
keep_backup_num = 3

开启工作流功能

在 3.0 版本中工作流功能默认是关闭的,如果需要开启,在 dtable_web_settings.py 中增加以下配置

ENABLE_WORKFLOW = True

2.7

内嵌表格到其他网页 (iframe 方式) 的配置需要作如下修改

在 dtable_web_settings.py 中

SESSION_COOKIE_SAMESITE = None
              |
              V
SESSION_COOKIE_SAMESITE = 'None'


CSRF_COOKIE_SAMESITE = None
              |
              V
CSRF_COOKIE_SAMESITE = 'None'

2.3

2.3 版本中 dtable-db 的配置项有一些改动。你需要做一些手工的修改:

加入 log_dir 的配置

[general]
log_dir = /shared/seatable/logs

加入 cache 的大小的设置 (单位为 M)

[dtable cache]
total_cache_size = 500

加入数据库的配置项

[database]
host = 127.0.0.1
user = root
password = mypass
db_name = dtable

dtable_web_settings.py 加入 dtable-db 相关配置

DTABLE_DB_URL = 'https://<your-domain>/dtable-db/'

nginx.conf 加入 dtable-db 相关配置

    location /dtable-db/ {
        proxy_pass         http://127.0.0.1:7777/;
        proxy_redirect     off;
        proxy_set_header   Host              $host;
        proxy_set_header   X-Real-IP         $remote_addr;
        proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Host  $server_name;
        proxy_set_header   X-Forwarded-Proto $scheme;

        access_log      /opt/nginx-logs/dtable-db.access.log seatableformat;
        error_log       /opt/nginx-logs/dtable-db.error.log;
    }

2.1

2.1 版增加了一个额外的组件 dtable-db,用于提供 SQL 查询接口 (后续会提供更多的功能)。你需要手工增加对应的配置文件。

手动添加 conf/dtable-db.conf,并修改 private_key

[general]
host = 127.0.0.1
port = 7777

[storage]
data_dir = /opt/seatable/db-data

[dtable cache]
private_key = "my private key"
dtable_server_url = "http://127.0.0.1:5000"
expire_time = 600
total_cache_size = 1
clean_cache_interval = 300

其中 private_key 的值需要和 dtable_server_config.json 中的 private_key 一样。

dtable_server_url 固定为 http://127.0.0.1:5000 ,不需要修改。

Last modified by seatable, 11 hours ago

4.4
api-gateway
total_cache_size
4.3
继续使用旧的部署方式升级 SeaTable
使用新的部署方式升级 SeaTable
升级 Python 运行器
4.
4.0
3.5
3.
3.1
3.0
开启工作流功能
.7
.3
.1