Hi Jonathan,
thanks for the reply. But that doesn’t work, neither.
/opt/seafile/seafile-server-latest# ./migrate.sh /shared
2026-02-12 10:02:16,858 filesystem storage backend does not support migration between identical storage
Done.
In my .env file I’ve defined:
### Storage type
SEAF_SERVER_STORAGE_TYPE=disk # disk, s3, multiple
MD_STORAGE_TYPE=$SEAF_SERVER_STORAGE_TYPE # disk, s3
SS_STORAGE_TYPE=$SEAF_SERVER_STORAGE_TYPE # disk, s3
In my docker container I run:
/opt/seafile/seafile-server-latest# ./migrate.sh /shared
2026-02-12 10:26:10,433 filesystem storage backend does not support migration between identical storage
/opt/seafile/seafile-server-latest# export SEAF_SERVER_STORAGE_TYPE=s3
/opt/seafile/seafile-server-latest# ./migrate.sh /shared
2026-02-12 10:26:29,709 S3 storage backend does not support migration between identical storage
Then I set the multiple storage type and in my seafile.conf
[storage]
enable_storage_classes = false
Now, in my container I get the error:
/opt/seafile/seafile-server-latest# export SEAF_SERVER_STORAGE_TYPE=multiple
/opt/seafile/seafile-server-latest# ./migrate.sh /shared
WARNING:root:Failed to load json file
Traceback (most recent call last):
File “/usr/lib/python3.12/configparser.py”, line 767, in get
value = d[option]
~^^^^^^^^
File “/usr/lib/python3.12/collections/init.py”, line 1015, in getitem
return self.missing(key) # support subclasses that define missing
^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3.12/collections/init.py”, line 1007, in missing
raise KeyError(key)
KeyError: ‘storage_classes_file’
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “/opt/seafile/seafile-pro-server-13.0.18/migrate.py”, line 14, in
from seafobj.objstore_factory import SeafObjStoreFactory
File “/opt/seafile/seafile-pro-server-13.0.18/seahub/thirdpart/seafobj/init.py”, line 2, in
from .commits import commit_mgr
File “/opt/seafile/seafile-pro-server-13.0.18/seahub/thirdpart/seafobj/commits.py”, line 1, in
from .objstore_factory import objstore_factory
File “/opt/seafile/seafile-pro-server-13.0.18/seahub/thirdpart/seafobj/objstore_factory.py”, line 551, in
objstore_factory = SeafObjStoreFactory()
^^^^^^^^^^^^^^^^^^^^^
File “/opt/seafile/seafile-pro-server-13.0.18/seahub/thirdpart/seafobj/objstore_factory.py”, line 430, in init
json_file = cfg.get(‘storage’, ‘storage_classes_file’)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3.12/configparser.py”, line 770, in get
raise NoOptionError(option, section)
configparser.NoOptionError: No option ‘storage_classes_file’ in section: ‘storage’
Done.
In the manual the path to the file is defined as /shared/conf/seafile_storage_classes.json That doesn’t work, because the confdirectory is under /shared/seafile/conf.
[storage]
enable_storage_classes = false
storage_classes_file = /shared/seafile/conf/seafile_storage_classes.json
But no matter if I change the path and create the json file, the migrate script is not working. I also wonder why the script is looking for the json file, even if I set the enable_storage_classes = false.
Now I don’t know what to do 