52 lines
1.9 KiB
JavaScript
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();
|