Files
camila/scratch/sync_coolify_env.js
T

52 lines
1.9 KiB
JavaScript

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();