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
Build and Deploy (Gitea) / build-and-deploy (push) Successful in 2m15s
Details
This commit is contained in:
parent
eb70433ae1
commit
27deac70c7
|
|
@ -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);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue