fix: adiciona migracao automatica das chaves antigas de IA para a tabela configuracoes_ia
Build and Deploy (Gitea) / build-and-deploy (push) Successful in 2m15s Details

This commit is contained in:
Sidney 2026-07-17 22:40:59 -03:00
parent eb70433ae1
commit 27deac70c7
1 changed files with 62 additions and 12 deletions

View File

@ -72,25 +72,75 @@ export async function getSchoolData() {
'SELECT data FROM school_data WHERE id = 1' 'SELECT data FROM school_data WHERE id = 1'
); );
const data = rows[0]?.data || {}; const data = rows[0]?.data || {};
const legacyAiConfig = data.aiConfig || {};
try { try {
const aiRes = await pool.query('SELECT * FROM configuracoes_ia WHERE id = 1'); const aiRes = await pool.query('SELECT * FROM configuracoes_ia WHERE id = 1');
if (aiRes.rows[0]) { if (aiRes.rows[0]) {
const dbConfig = aiRes.rows[0]; const dbConfig = aiRes.rows[0];
const geminiKey = dbConfig.gemini_key || legacyAiConfig.geminiKey || '';
const openaiKey = dbConfig.openai_key || legacyAiConfig.openaiKey || '';
const claudeKey = dbConfig.claude_key || legacyAiConfig.claudeKey || '';
const openrouterKey = dbConfig.openrouter_key || legacyAiConfig.openrouterKey || '';
data.aiConfig = { data.aiConfig = {
activeProvider: dbConfig.active_provider, activeProvider: dbConfig.active_provider || legacyAiConfig.activeProvider || 'gemini',
geminiKey: dbConfig.gemini_key || '', geminiKey,
openaiKey: dbConfig.openai_key || '', openaiKey,
claudeKey: dbConfig.claude_key || '', claudeKey,
openrouterKey: dbConfig.openrouter_key || '', openrouterKey,
geminiModel: dbConfig.gemini_model || 'gemini-1.5-flash', geminiModel: dbConfig.gemini_model || legacyAiConfig.geminiModel || 'gemini-1.5-flash',
openaiModel: dbConfig.openai_model || 'gpt-4o-mini', openaiModel: dbConfig.openai_model || legacyAiConfig.openaiModel || 'gpt-4o-mini',
claudeModel: dbConfig.claude_model || 'claude-3-5-sonnet-20241022', claudeModel: dbConfig.claude_model || legacyAiConfig.claudeModel || 'claude-3-5-sonnet-20241022',
openrouterModel: dbConfig.openrouter_model || 'google/gemini-2.5-flash', openrouterModel: dbConfig.openrouter_model || legacyAiConfig.openrouterModel || 'google/gemini-2.5-flash',
activeImageProvider: dbConfig.active_image_provider || 'gemini', activeImageProvider: dbConfig.active_image_provider || legacyAiConfig.activeImageProvider || 'gemini',
openaiImageModel: dbConfig.openai_image_model || 'dall-e-3', openaiImageModel: dbConfig.openai_image_model || legacyAiConfig.openaiImageModel || 'dall-e-3',
geminiImageModel: dbConfig.gemini_image_model || 'imagen-3.0-generate-002' geminiImageModel: dbConfig.gemini_image_model || legacyAiConfig.geminiImageModel || 'gemini-2.5-flash-image'
}; };
const precisaMigrar =
(legacyAiConfig.geminiKey && !dbConfig.gemini_key) ||
(legacyAiConfig.openaiKey && !dbConfig.openai_key) ||
(legacyAiConfig.claudeKey && !dbConfig.claude_key) ||
(legacyAiConfig.openrouterKey && !dbConfig.openrouter_key);
if (precisaMigrar) {
console.log('[Database:Migration] Migrando chaves de IA do JSON legado para a nova tabela configuracoes_ia...');
pool.query(
`UPDATE configuracoes_ia SET
active_provider = $1,
gemini_key = $2,
openai_key = $3,
claude_key = $4,
openrouter_key = $5,
gemini_model = $6,
openai_model = $7,
claude_model = $8,
openrouter_model = $9,
active_image_provider = $10,
openai_image_model = $11,
gemini_image_model = $12,
updated_at = NOW()
WHERE id = 1`,
[
data.aiConfig.activeProvider,
data.aiConfig.geminiKey,
data.aiConfig.openaiKey,
data.aiConfig.claudeKey,
data.aiConfig.openrouterKey,
data.aiConfig.geminiModel,
data.aiConfig.openaiModel,
data.aiConfig.claudeModel,
data.aiConfig.openrouterModel,
data.aiConfig.activeImageProvider,
data.aiConfig.openaiImageModel,
data.aiConfig.geminiImageModel
]
).catch(err => {
console.error('[Database:Migration] Erro ao migrar chaves de IA:', err.message);
});
}
} }
} catch (err) { } catch (err) {
console.warn('[Database] Erro ao mesclar configuracoes_ia no school_data:', err.message); console.warn('[Database] Erro ao mesclar configuracoes_ia no school_data:', err.message);