const { Client } = require('pg'); const fs = require('fs'); const dotenv = require('dotenv'); const crypto = require('crypto'); async function syncCoolifyEnv() { const envConfig = dotenv.parse(fs.readFileSync('/root/Apps/Camila/.env', 'utf-8')); // Conectar ao coolify-db via docker exec ou porta local // Vamos usar o psql via child_process ou pg conectado ao container console.log('Variáveis encontradas no .env:', Object.keys(envConfig)); const client = new Client({ host: '127.0.0.1', port: 5432, user: 'coolify', password: process.env.COOLIFY_DB_PASSWORD || '', database: 'coolify' }); // Como o coolify-db pode estar em rede docker interna, vamos gerar as queries SQL const applicationId = 39; const queries = []; for (const [key, value] of Object.entries(envConfig)) { if (!key || !value) continue; const uuid = crypto.randomBytes(12).toString('hex'); const safeKey = key.replace(/'/g, "''"); const safeVal = value.replace(/'/g, "''"); // Inserir ou atualizar se já existir const sql = ` INSERT INTO environment_variables ( key, value, resourceable_type, resourceable_id, is_runtime, is_buildtime, is_preview, is_shown_once, is_multiline, is_literal, is_required, is_shared, version, uuid, created_at, updated_at ) VALUES ( '${safeKey}', '${safeVal}', 'App\\\\Models\\\\Application', ${applicationId}, true, true, false, false, false, false, false, false, '4.0.0-beta.239', '${uuid}', NOW(), NOW() ) ON CONFLICT DO NOTHING; `; queries.push(sql); } const fullSql = ` DELETE FROM environment_variables WHERE resourceable_id = ${applicationId} AND key != 'NIXPACKS_NODE_VERSION'; ${queries.join('\n')} `; fs.writeFileSync('/root/Apps/Camila/scratch/sync_env.sql', fullSql); console.log('Script SQL gerado com sucesso em /root/Apps/Camila/scratch/sync_env.sql'); } syncCoolifyEnv();