#!/usr/bin/env node
/**
* Fix farm coordinates by setting them directly in the database
* This bypasses the slow geocoding service in the web interface
*/
import pg from 'pg';
const { Client } = pg;
// Database configuration
const client = new Client({
host: 'localhost',
port: 5433,
database: 'pg-litefarm',
user: 'postgres',
password: 'postgres'
});
// Beispiel-Koordinaten (Deutschland, anpassbar)
const COORDINATES = {
// Berlin, Deutschland
lat: 52.5200,
lng: 13.4050,
// Oder andere deutsche St�dte:
// M�nchen: { lat: 48.1351, lng: 11.5820 }
// Hamburg: { lat: 53.5511, lng: 9.9937 }
// Frankfurt: { lat: 50.1109, lng: 8.6821 }
};
async function fixFarmCoordinates() {
try {
await client.connect();
console.log(' Mit Datenbank verbunden\n');
// Hole alle Farms
const farms = await client.query(
'SELECT farm_id, farm_name, grid_points FROM farm WHERE deleted = false'
);
if (farms.rows.length === 0) {
console.log('L Keine Farms gefunden!');
await client.end();
return;
}
console.log(`=� ${farms.rows.length} Farm(s) gefunden:\n`);
for (const farm of farms.rows) {
console.log(`Farm: ${farm.farm_name} (${farm.farm_id})`);
if (farm.grid_points) {
console.log(` Hat bereits Koordinaten`);
continue;
}
// Setze Koordinaten (Beispiel: Quadrat um den Punkt)
const gridPoints = {
type: 'Polygon',
coordinates: [[
[COORDINATES.lng - 0.01, COORDINATES.lat - 0.01],
[COORDINATES.lng + 0.01, COORDINATES.lat - 0.01],
[COORDINATES.lng + 0.01, COORDINATES.lat + 0.01],
[COORDINATES.lng - 0.01, COORDINATES.lat + 0.01],
[COORDINATES.lng - 0.01, COORDINATES.lat - 0.01]
]]
};
await client.query(
'UPDATE farm SET grid_points = $1 WHERE farm_id = $2',
[JSON.stringify(gridPoints), farm.farm_id]
);
console.log(` Koordinaten gesetzt: ${COORDINATES.lat}, ${COORDINATES.lng}`);
}
console.log('\n Fertig! Du kannst jetzt die Web-App nutzen.');
console.log('\n=� Tipp: Du kannst die Koordinaten in der Web-App noch anpassen.');
} catch (error) {
console.error('L Fehler:', error.message);
process.exit(1);
} finally {
await client.end();
}
}
fixFarmCoordinates();