bmrlab / gendam

A privacy-first generative DAM
6 stars 1 forks source link

重命名文件夹的的 SQL 不能使用 REPLACE,无法确保只更新前缀。 #19

Closed web3nomad closed 2 months ago

web3nomad commented 2 months ago

重命名文件夹的算法是一次性更新 materializedPath 的前缀。是可行的。

UPDATE "FilePath"
SET "materializedPath" = REPLACE("materializedPath", "/a/aa/", "/a/ab/")
WHERE "materializedPath" LIKE "/a/ab/%";

这样会把 /a/aa/x/a/aa/x 都替换成 /a/ab/x/a/ab/x

Originally posted by @web3nomad in https://github.com/bmrlab/tauri-dam-test-playground/issues/15#issuecomment-2001923304

web3nomad commented 2 months ago

可能一种更好的思路是给 materializedPath 都加上一个前缀,比如 "!",这个符号不可能在实际的路径中出现

比如 "!/a/aa/x/"

不过,目前解决方案没有用这个方案,还是存储普通的 path 数据,但是使用 SUBSTR 进行字符串拼接来确保更新前缀。

https://github.com/bmrlab/tauri-dam-test-playground/issues/15#issuecomment-2001923972