init_image_translation.py 脚本用于初始化图像翻译模块的数据库环境,包括:
add_image_translation_table.sql 创建 image_translation 表及相关索引model 和 model_price 表中添加 qwen-mt-image 模型配置toolbox_apps 表中添加图像翻译应用入口psycopg2-binary, python-dotenvbackend/.env 文件中的数据库连接信息aigcspace schemacd backend
pip install psycopg2-binary python-dotenv
python scripts/init_image_translation.py
脚本执行时会显示详细的进度信息:
============================================================
图像翻译模块数据库迁移脚本
============================================================
📁 找到迁移文件:
- add_image_translation_table.sql
🔌 连接数据库...
Host: localhost
Port: 5432
Database: aigcspace
User: postgres
✓ 数据库连接成功
🚀 开始执行迁移...
[1/3] 创建数据表...
✓ 执行成功: add_image_translation_table.sql
[2/3] 插入模型配置...
✓ 模型 qwen-mt-image 插入成功 (ID: 123)
✓ 模型价格配置插入成功(每张图片 0.02 元)
[3/3] 插入百宝箱应用...
✓ 百宝箱应用 qwen-image-translate 插入成功 (ID: 456)
✓ 所有迁移执行成功
📊 数据验证:
✓ image_translation 表: 已创建
✓ 模型配置: qwen-mt-image (ID: 123, 价格: 0.02元/张)
✓ 百宝箱应用: 通义千问图像翻译 [New] (版本: 1.0.0, 状态: active)
✓ 索引数量: 4
- idx_image_translation_user_id
- idx_image_translation_task_id
- idx_image_translation_created_at
- idx_image_translation_status
============================================================
✅ 图像翻译模块数据库迁移完成!
============================================================
💡 下一步:
1. 重启后端服务: cd backend && python main.py
2. 访问百宝箱: http://localhost:5173/toolbox
3. 点击「通义千问图像翻译」卡片的「立即使用」按钮
4. 开始使用图像翻译功能
脚本具有幂等性,可以安全地多次执行:
如果执行过程中出现错误:
常见错误及解决方案:
❌ 数据库连接失败: FATAL: password authentication failed
解决方案:检查 .env 文件中的数据库连接信息是否正确
如果表已存在但需要重新创建,请先手动删除:
DROP TABLE IF EXISTS aigcspace.image_translation CASCADE;
如果 model 或 toolbox_apps 表不存在,需要先执行相关的迁移脚本。
执行完成后,可以通过以下 SQL 验证:
-- 检查表是否创建
SELECT * FROM aigcspace.image_translation LIMIT 1;
-- 检查模型配置
SELECT m.title, mp.output_price
FROM aigcspace.model m
LEFT JOIN aigcspace.model_price mp ON m.id = mp.model_id
WHERE m.title = 'qwen-mt-image';
-- 检查百宝箱应用
SELECT app_key, name, category, status
FROM aigcspace.toolbox_apps
WHERE app_key = 'qwen-image-translate';
如需回滚,执行以下 SQL:
-- 删除百宝箱应用
DELETE FROM aigcspace.toolbox_apps WHERE app_key = 'qwen-image-translate';
-- 删除模型价格配置
DELETE FROM aigcspace.model_price
WHERE model_id = (SELECT id FROM aigcspace.model WHERE title = 'qwen-mt-image');
-- 删除模型配置
DELETE FROM aigcspace.model WHERE title = 'qwen-mt-image';
-- 删除表
DROP TABLE IF EXISTS aigcspace.image_translation CASCADE;
backend/scripts/init_image_translation.py - 初始化脚本backend/migrations/add_image_translation_table.sql - 表创建SQLbackend/.env - 数据库连接配置backend/app/models/image_translation.py - ORM模型backend/app/routers/image_translation_router.py - API路由如遇到问题,请检查:
aigcspace schema 是否存在