はじめに
Difyを使用中にprovider_name
カラムの文字数制限に関するエラーが発生した場合、データベースのカラム長を拡張する必要があります。本記事ではDocker環境での変更手順を解説します。
前提条件
- Dockerがインストール済み
- DifyがDockerコンテナで実行されている
操作手順
1. Dockerデータベースコンテナへの接続
docker exec -it docker-db-1 bash
2. Difyデータベースへの接続
psql -d dify
3. カラム定義の変更
ALTER TABLE dataset_collection_bindings
ALTER COLUMN provider_name TYPE VARCHAR(255);
4. 変更内容の確認
\d dataset_collection_bindings;
実行結果の例
Table "public.dataset_collection_bindings"
Column | Type | Collation | Nullable | Default
-----------------+-----------------------------+-----------+----------+------------------------------
id | uuid | | not null | uuid_generate_v4()
provider_name | character varying(255) | | not null |
model_name | character varying(255) | | not null |
collection_name | character varying(64) | | not null |
created_at | timestamp without time zone | | not null | CURRENT_TIMESTAMP(0)
type | character varying(40) | | not null | 'dataset'::character varying
Indexes:
"dataset_collection_bindings_pkey" PRIMARY KEY, btree (id)
"provider_model_name_idx" btree (provider_name, model_name)
簡単にコマンド1つで実施
変更コマンド:
docker exec -i docker-db-1 psql -d dify -c "ALTER TABLE dataset_collection_bindings ALTER COLUMN provider_name TYPE VARCHAR(255);"
確認コマンド:
docker exec -i docker-db-1 psql -d dify -c "\d dataset_collection_bindings;"
注意事項
- 本操作はテーブル構造を変更するため、事前にデータベースのバックアップを推奨します
- 本番環境で実行する場合はメンテナンス時間を確保してください
- マイグレーションファイルがある場合は併せて更新が必要です
参考リンク
GitHub Issue #13921
GitHub Issue #14593
まとめ
VARCHAR(255)への変更により、より長いプロバイダ名の格納が可能になります。Docker環境でのデータベース変更の参考になれば幸いです。