dbab7b0405
- Added a new `StorageProviderConfig` struct to the `KnowledgeBase` for improved storage provider management, separating provider selection from storage credentials. - Updated the `UnmarshalJSON` method to auto-populate `StorageProviderConfig` from the legacy `StorageConfig` for backward compatibility. - Refactored various service methods to utilize the new storage provider configuration, ensuring a smooth transition from the legacy system. - Implemented database migrations to add the `storage_provider_config` column and migrate existing data, maintaining compatibility with historical knowledge bases. This update enhances the clarity and flexibility of storage configurations while ensuring compatibility with existing data structures.
17 lines
634 B
SQL
17 lines
634 B
SQL
-- Rollback: copy provider back to cos_config if needed, then drop new column
|
|
UPDATE knowledge_bases
|
|
SET cos_config = jsonb_set(
|
|
COALESCE(cos_config, '{}'::jsonb),
|
|
'{provider}',
|
|
to_jsonb(storage_provider_config->>'provider')
|
|
)
|
|
WHERE storage_provider_config IS NOT NULL
|
|
AND storage_provider_config->>'provider' IS NOT NULL
|
|
AND storage_provider_config->>'provider' != ''
|
|
AND storage_provider_config->>'provider' != '__pending_env__'
|
|
AND (cos_config IS NULL
|
|
OR cos_config->>'provider' IS NULL
|
|
OR cos_config->>'provider' = '');
|
|
|
|
ALTER TABLE knowledge_bases DROP COLUMN IF EXISTS storage_provider_config;
|