服务器更换访问链接以后,表格内的文件地址还是原来地址无法访问,有什么方法可以把文件的地址也更换为新的。

服务器更换访问链接以后,表格内的文件地址还是原来地址无法访问,有什么方法可以把文件的地址也更换为新的。

@freeplant

目前没有什么方法。

你这是本地部署的吗,如果按照他们官网的教程部署的,那数据一般都是存在mysql数据库的,你看下具体存在哪个库哪个表,然后试着直接改数据库的数据呢,先改一个,看下效果

也就是要跟换服务器,前面的数据都全部没办法用了就?

一开始的时候就配置域名就可以了

使用js或者python脚本进行更新,主要思路:
1、遍历所有工作区间的所有行和列,检查是否是文件格式
2、如果是文件格式那么替换文件数组中的url
3、更新行

1 个赞

这个思路可以,可能需要遍历全部的行列,替换更新的URL,如果是长文本中的图片,需要特殊处理一下

@freeplant 潘总请教一下,域名转换处理报这个错误如何处理。

这个脚本在seatable-server-latest/dtable-web 目录下,在这个目录下执行这个命令

1 个赞

好的 测试正常,感谢

思路很好,写了个js脚本的作为样例

var tbname = '表名'
var col = '列名'
var oldurl = '原链接'
var newurl = '新链接'

var data = await base.query(`select * from ${tbname} where ${col} is not NULL Limit 100000`)

output.text(data.length)
var updatedRows = []
var selectedRows = []
for (let i = 0; i < data.length; i++) {
    var attrs = []
    var row = data[i]
    selectedRows.push(data[i])
    for (const e of row[col]) {
        var attr = JSON.parse(JSON.stringify(e))
        attr['url'] = attr['url'].replace(oldurl, newurl)
        attrs.push(attr)
    }
    updatedRows.push({ col : attrs })
}

base.modifyRows(tbname, selectedRows, updatedRows)
1 个赞

Unknown command: ‘domain_transfer’
Type ‘manage.py help’ for usage.
在该目录下执行后,又报找不到 domain_transfer 命令