chore: migration to Standortplaner repository and local modifications
This commit is contained in:
parent
415bd6d355
commit
3020ae2ad0
|
|
@ -1,4 +1,4 @@
|
||||||
name: Deploy Bürgerwind
|
name: Deploy Standortplaner
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
|
|
@ -12,15 +12,33 @@ jobs:
|
||||||
- name: Code holen
|
- name: Code holen
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: .env erstellen
|
- name: Dateien auf Server kopieren
|
||||||
run: |
|
uses: appleboy/scp-action@master
|
||||||
echo "DB_HOST=${{ secrets.DB_HOST }}" > .env
|
with:
|
||||||
echo "DB_PORT=5432" >> .env
|
host: ${{ secrets.SERVER_HOST }}
|
||||||
echo "DB_USER=${{ secrets.DB_USER }}" >> .env
|
username: ${{ secrets.SERVER_USER }}
|
||||||
echo "DB_PASSWORD=${{ secrets.DB_PASSWORD }}" >> .env
|
key: ${{ secrets.SSH_PRIVATE_KEY }}
|
||||||
echo "DB_NAME=${{ secrets.DB_NAME }}" >> .env
|
source: "."
|
||||||
echo "DB_SCHEMA=geodaten" >> .env
|
target: "/opt/automation-stack/standortplaner"
|
||||||
|
|
||||||
- name: App bauen und starten
|
- name: Deployment auf Server ausführen
|
||||||
run: |
|
uses: appleboy/ssh-action@master
|
||||||
docker compose up -d --build --force-recreate
|
with:
|
||||||
|
host: ${{ secrets.SERVER_HOST }}
|
||||||
|
username: ${{ secrets.SERVER_USER }}
|
||||||
|
key: ${{ secrets.SSH_PRIVATE_KEY }}
|
||||||
|
script: |
|
||||||
|
cd /opt/automation-stack/standortplaner
|
||||||
|
|
||||||
|
# .env Datei mit den Secrets befüllen
|
||||||
|
echo "DB_HOST=${{ secrets.DB_HOST }}" > .env
|
||||||
|
echo "DB_PORT=${{ secrets.DB_PORT }}" >> .env
|
||||||
|
echo "DB_USER=${{ secrets.DB_USER }}" >> .env
|
||||||
|
echo "DB_PASSWORD=${{ secrets.DB_PASSWORD }}" >> .env
|
||||||
|
echo "DB_NAME=${{ secrets.DB_NAME }}" >> .env
|
||||||
|
echo "DB_SCHEMA=geodaten" >> .env
|
||||||
|
echo "OIDC_CLIENT_ID=${{ secrets.OIDC_CLIENT_ID }}" >> .env
|
||||||
|
echo "OIDC_CLIENT_SECRET=${{ secrets.OIDC_CLIENT_SECRET }}" >> .env
|
||||||
|
|
||||||
|
# App starten
|
||||||
|
docker compose up -d --build --force-recreate
|
||||||
81
app.js
81
app.js
|
|
@ -12,7 +12,9 @@ document.addEventListener('DOMContentLoaded', async () => {
|
||||||
ownerMapping: { firstName: 'vorname', lastName: 'nachname' }, // Default for ALKIS and modern Shapefiles
|
ownerMapping: { firstName: 'vorname', lastName: 'nachname' }, // Default for ALKIS and modern Shapefiles
|
||||||
ownerStatuses: {}, // { "name vorname": { status: "...", notiz: "..." } }
|
ownerStatuses: {}, // { "name vorname": { status: "...", notiz: "..." } }
|
||||||
showAuxiliary: true,
|
showAuxiliary: true,
|
||||||
isEditMode: false
|
isEditMode: false,
|
||||||
|
isLoading: true,
|
||||||
|
hasLoadedFromDB: false
|
||||||
};
|
};
|
||||||
|
|
||||||
const STATUS_MAP = {
|
const STATUS_MAP = {
|
||||||
|
|
@ -1942,29 +1944,36 @@ document.addEventListener('DOMContentLoaded', async () => {
|
||||||
|
|
||||||
// Initialize Dynamic Layers and then load data
|
// Initialize Dynamic Layers and then load data
|
||||||
initDynamicLayers().then(async () => {
|
initDynamicLayers().then(async () => {
|
||||||
// Erst Status laden
|
try {
|
||||||
await loadOwnerStatusesFromDB();
|
// Erst Status laden
|
||||||
|
await loadOwnerStatusesFromDB();
|
||||||
|
|
||||||
// Dann WEAs laden
|
// Dann WEAs laden
|
||||||
await loadTurbinesFromDB();
|
await loadTurbinesFromDB();
|
||||||
|
|
||||||
// Automatisches Mapping für den Eigentümer-Layer prüfen
|
// Automatisches Mapping für den Eigentümer-Layer prüfen
|
||||||
const ownerLayerName = Object.keys(overlays).find(k => k.toLowerCase().includes('eigentümer'));
|
const ownerLayerName = Object.keys(overlays).find(k => k.toLowerCase().includes('eigentümer'));
|
||||||
if (ownerLayerName && overlays[ownerLayerName]) {
|
if (ownerLayerName && overlays[ownerLayerName]) {
|
||||||
const layer = overlays[ownerLayerName];
|
const layer = overlays[ownerLayerName];
|
||||||
const layers = layer.getLayers();
|
const layers = layer.getLayers();
|
||||||
if (layers.length > 0) {
|
if (layers.length > 0) {
|
||||||
const firstFeature = layers[0].feature;
|
const firstFeature = layers[0].feature;
|
||||||
if (firstFeature?.properties) {
|
if (firstFeature?.properties) {
|
||||||
const props = firstFeature.properties;
|
const props = firstFeature.properties;
|
||||||
const vna = Object.keys(props).find(k => k.toUpperCase() === 'VNA');
|
const vna = Object.keys(props).find(k => k.toUpperCase() === 'VNA');
|
||||||
const gna = Object.keys(props).find(k => k.toUpperCase() === 'GNA' || k.toUpperCase() === 'NBA');
|
const gna = Object.keys(props).find(k => k.toUpperCase() === 'GNA' || k.toUpperCase() === 'NBA');
|
||||||
if (vna && gna) {
|
if (vna && gna) {
|
||||||
state.ownerMapping = { firstName: vna, lastName: gna };
|
state.ownerMapping = { firstName: vna, lastName: gna };
|
||||||
refreshOwnerLayerStyle();
|
refreshOwnerLayerStyle();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.error("Fehler bei der Initialisierung des Planungstools:", e);
|
||||||
|
} finally {
|
||||||
|
state.isLoading = false;
|
||||||
|
console.log("Planungstool initialisiert, isLoading = false");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -2004,15 +2013,37 @@ document.addEventListener('DOMContentLoaded', async () => {
|
||||||
// DB Persistence
|
// DB Persistence
|
||||||
let autoSaveTimeout = null;
|
let autoSaveTimeout = null;
|
||||||
function triggerAutoSave() {
|
function triggerAutoSave() {
|
||||||
|
if (state.isLoading) {
|
||||||
|
console.log("Auto-Save unterdrückt: App befindet sich noch in der Ladephase.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!state.hasLoadedFromDB) {
|
||||||
|
console.warn("Auto-Save unterdrückt: Datenbank wurde beim Start nicht erfolgreich geladen.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (autoSaveTimeout) clearTimeout(autoSaveTimeout);
|
if (autoSaveTimeout) clearTimeout(autoSaveTimeout);
|
||||||
autoSaveTimeout = setTimeout(() => {
|
autoSaveTimeout = setTimeout(() => {
|
||||||
saveTurbinesToDB();
|
saveTurbinesToDB(false);
|
||||||
}, 1500); // 1.5 Seconds debounce
|
}, 1500); // 1.5 Seconds debounce
|
||||||
}
|
}
|
||||||
|
|
||||||
async function saveTurbinesToDB() {
|
async function saveTurbinesToDB(force = false) {
|
||||||
|
if (state.isLoading && !force) {
|
||||||
|
console.log("Speichern unterdrückt: Ladephase aktiv.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!state.hasLoadedFromDB && !force) {
|
||||||
|
console.warn("Speichern unterdrückt: Datenbank wurde beim Start nicht geladen.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!state.hasLoadedFromDB && force) {
|
||||||
|
const confirmSave = confirm("WARNUNG: Die Datenbank wurde beim Start nicht erfolgreich geladen. Wenn Sie jetzt speichern, überschreiben Sie eventuell vorhandene Standorte in der Datenbank. Möchten Sie trotzdem speichern?");
|
||||||
|
if (!confirmSave) return;
|
||||||
|
}
|
||||||
|
|
||||||
const statusEl = document.getElementById('statusInfo');
|
const statusEl = document.getElementById('statusInfo');
|
||||||
if (statusEl) statusEl.innerText = "Automatische Speicherung...";
|
if (statusEl) statusEl.innerText = "Speicherung läuft...";
|
||||||
|
|
||||||
const projekt_id = "BWSamern-Ohne";
|
const projekt_id = "BWSamern-Ohne";
|
||||||
const turbineData = state.turbines.map(t => ({
|
const turbineData = state.turbines.map(t => ({
|
||||||
|
|
@ -2041,13 +2072,13 @@ document.addEventListener('DOMContentLoaded', async () => {
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
if (statusEl) statusEl.innerHTML = `<span style="color: #ff4444;">Auto-Save Fehler: ${err.message}</span>`;
|
if (statusEl) statusEl.innerHTML = `<span style="color: #ff4444;">Speicherfehler: ${err.message}</span>`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const btnSaveDB = document.getElementById('btnSaveDB');
|
const btnSaveDB = document.getElementById('btnSaveDB');
|
||||||
if (btnSaveDB) {
|
if (btnSaveDB) {
|
||||||
btnSaveDB.addEventListener('click', saveTurbinesToDB);
|
btnSaveDB.addEventListener('click', () => saveTurbinesToDB(true));
|
||||||
}
|
}
|
||||||
|
|
||||||
async function loadTurbinesFromDB() {
|
async function loadTurbinesFromDB() {
|
||||||
|
|
@ -2102,9 +2133,11 @@ document.addEventListener('DOMContentLoaded', async () => {
|
||||||
} else {
|
} else {
|
||||||
console.log("Datenbank ist leer.");
|
console.log("Datenbank ist leer.");
|
||||||
}
|
}
|
||||||
|
state.hasLoadedFromDB = true;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error("GLOBALER FEHLER beim Laden aus der DB:", err);
|
console.error("GLOBALER FEHLER beim Laden aus der DB:", err);
|
||||||
if (statusEl) statusEl.innerText = "Fehler beim Laden der Standorte.";
|
if (statusEl) statusEl.innerText = "Fehler beim Laden der Standorte.";
|
||||||
|
state.hasLoadedFromDB = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
require('dotenv').config({ path: '../.env' });
|
||||||
const client = new Client({
|
const client = new Client({
|
||||||
host: '87.106.21.21',
|
host: process.env.DB_HOST,
|
||||||
port: 5432,
|
port: process.env.DB_PORT,
|
||||||
user: 'enwelo_admin',
|
user: process.env.DB_USER,
|
||||||
password: 'WX1t1cgP1qK09',
|
password: process.env.DB_PASSWORD,
|
||||||
database: 'enwelo'
|
database: process.env.DB_NAME
|
||||||
});
|
});
|
||||||
client.connect().then(async () => {
|
client.connect().then(async () => {
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'geodata'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
require('dotenv').config({ path: '../.env' });
|
||||||
const client = new Client({
|
const client = new Client({
|
||||||
host: '87.106.21.21',
|
host: process.env.DB_HOST,
|
||||||
port: 5432,
|
port: process.env.DB_PORT,
|
||||||
user: 'enwelo_admin',
|
user: process.env.DB_USER,
|
||||||
password: 'WX1t1cgP1qK09',
|
password: process.env.DB_PASSWORD,
|
||||||
database: 'enwelo'
|
database: process.env.DB_NAME
|
||||||
});
|
});
|
||||||
client.connect().then(async () => {
|
client.connect().then(async () => {
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function clean() {
|
async function clean() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function fix() {
|
async function fix() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function fixView() {
|
async function fixView() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
require('dotenv').config({ path: '../.env' });
|
||||||
const client = new Client({
|
const client = new Client({
|
||||||
host: '87.106.21.21',
|
host: process.env.DB_HOST,
|
||||||
port: 5432,
|
port: process.env.DB_PORT,
|
||||||
user: 'enwelo_admin',
|
user: process.env.DB_USER,
|
||||||
password: 'WX1t1cgP1qK09',
|
password: process.env.DB_PASSWORD,
|
||||||
database: 'enwelo'
|
database: process.env.DB_NAME
|
||||||
});
|
});
|
||||||
client.connect().then(async () => {
|
client.connect().then(async () => {
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
require('dotenv').config({ path: require('path').resolve(__dirname, '../.env') });
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
const client = new Client({
|
const client = new Client({
|
||||||
|
|
@ -5,7 +6,7 @@ const client = new Client({
|
||||||
port: 5432,
|
port: 5432,
|
||||||
database: 'enwelo',
|
database: 'enwelo',
|
||||||
user: 'postgres',
|
user: 'postgres',
|
||||||
password: ''
|
password: process.env.DB_PASSWORD
|
||||||
});
|
});
|
||||||
|
|
||||||
async function run() {
|
async function run() {
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function inspect() {
|
async function inspect() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function inspect() {
|
async function inspect() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'geodata'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
require('dotenv').config({ path: '../.env' });
|
||||||
|
const { Pool } = require('pg');
|
||||||
|
|
||||||
|
const pool = new Pool({
|
||||||
|
host: process.env.DB_HOST,
|
||||||
|
port: process.env.DB_PORT,
|
||||||
|
database: process.env.DB_NAME,
|
||||||
|
user: process.env.DB_USER,
|
||||||
|
password: process.env.DB_PASSWORD
|
||||||
|
});
|
||||||
|
|
||||||
|
async function run() {
|
||||||
|
try {
|
||||||
|
const res = await pool.query("SELECT column_name, data_type FROM information_schema.columns WHERE table_schema = 'geodaten' AND table_name = 'artennachweis'");
|
||||||
|
console.log("Columns:", res.rows);
|
||||||
|
|
||||||
|
// Test the exact query
|
||||||
|
const res2 = await pool.query(`SELECT jsonb_build_object(
|
||||||
|
'type', 'FeatureCollection',
|
||||||
|
'features', COALESCE(jsonb_agg(features.feature), '[]'::jsonb)
|
||||||
|
)
|
||||||
|
FROM (
|
||||||
|
SELECT jsonb_build_object(
|
||||||
|
'type', 'Feature',
|
||||||
|
'geometry', ST_AsGeoJSON(ST_Transform(geom, 4326))::jsonb,
|
||||||
|
'properties', jsonb_build_object(
|
||||||
|
'art', art
|
||||||
|
)
|
||||||
|
) AS feature
|
||||||
|
FROM geodaten.artennachweis
|
||||||
|
) features`);
|
||||||
|
console.log("Query Success! First few chars of result:", JSON.stringify(res2.rows[0]).substring(0, 100));
|
||||||
|
} catch (err) {
|
||||||
|
console.error("Error:", err.message);
|
||||||
|
} finally {
|
||||||
|
pool.end();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
run();
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function test_insert() {
|
async function test_insert() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function testFullLogic() {
|
async function testFullLogic() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function testInsert() {
|
async function testInsert() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,47 @@
|
||||||
|
require('dotenv').config({ path: '../.env' });
|
||||||
|
const { Pool } = require('pg');
|
||||||
|
|
||||||
|
const pool = new Pool({
|
||||||
|
host: process.env.DB_HOST,
|
||||||
|
port: process.env.DB_PORT,
|
||||||
|
database: process.env.DB_NAME,
|
||||||
|
user: process.env.DB_USER,
|
||||||
|
password: process.env.DB_PASSWORD
|
||||||
|
});
|
||||||
|
|
||||||
|
async function run() {
|
||||||
|
try {
|
||||||
|
const result = await pool.query(
|
||||||
|
`SELECT jsonb_build_object(
|
||||||
|
'type', 'FeatureCollection',
|
||||||
|
'features', COALESCE(jsonb_agg(features.feature), '[]'::jsonb)
|
||||||
|
)
|
||||||
|
FROM (
|
||||||
|
SELECT jsonb_build_object(
|
||||||
|
'type', 'Feature',
|
||||||
|
'geometry', ST_AsGeoJSON(ST_Transform(geom, 4326))::jsonb,
|
||||||
|
'properties', jsonb_build_object(
|
||||||
|
'art', art,
|
||||||
|
'spannung', spannung,
|
||||||
|
'ltg_name', ltg_name,
|
||||||
|
'bezeichnun', bezeichnun,
|
||||||
|
'bemerkung', bemerkung,
|
||||||
|
'status', status,
|
||||||
|
'quelle', quelle,
|
||||||
|
'info', info,
|
||||||
|
'vorschlag', vorschlag
|
||||||
|
)
|
||||||
|
) AS feature
|
||||||
|
FROM geodaten.leitungsverlaeufe
|
||||||
|
WHERE art ILIKE '%wasserstoff%' OR art ILIKE '%freileitung%'
|
||||||
|
) features`
|
||||||
|
);
|
||||||
|
console.log("Success! Output:", JSON.stringify(result.rows[0]).substring(0, 100));
|
||||||
|
} catch (err) {
|
||||||
|
console.error("DB Error:", err.message);
|
||||||
|
} finally {
|
||||||
|
pool.end();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
run();
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function testQuery() {
|
async function testQuery() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function testProject() {
|
async function testProject() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,12 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
const client = new Client({ host: '87.106.21.21', port: 5432, user: 'enwelo_admin', password: 'WX1t1cgP1qK09', database: 'enwelo' });
|
require('dotenv').config({ path: '../.env' });
|
||||||
|
const client = new Client({
|
||||||
|
host: process.env.DB_HOST,
|
||||||
|
port: process.env.DB_PORT,
|
||||||
|
user: process.env.DB_USER,
|
||||||
|
password: process.env.DB_PASSWORD,
|
||||||
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
async function resolveProjectId(client, input) {
|
async function resolveProjectId(client, input) {
|
||||||
if (!input) return null;
|
if (!input) return null;
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
const { Client } = require('pg');
|
const { Client } = require('pg');
|
||||||
|
|
||||||
async function check() {
|
async function check() {
|
||||||
const client = new Client({
|
require('dotenv').config({ path: '../.env' });
|
||||||
host: '87.106.21.21',
|
const client = new Client({
|
||||||
port: 5432,
|
host: process.env.DB_HOST,
|
||||||
user: 'enwelo_admin',
|
port: process.env.DB_PORT,
|
||||||
password: 'WX1t1cgP1qK09',
|
user: process.env.DB_USER,
|
||||||
database: 'enwelo'
|
password: process.env.DB_PASSWORD,
|
||||||
});
|
database: process.env.DB_NAME
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.connect();
|
await client.connect();
|
||||||
|
|
|
||||||
|
|
@ -1,25 +1,24 @@
|
||||||
services:
|
services:
|
||||||
bw-samern-ohne:
|
standortplaner:
|
||||||
|
# Baut das Image basierend auf deinem Dockerfile
|
||||||
build: .
|
build: .
|
||||||
container_name: bw-samern-ohne
|
container_name: standortplaner
|
||||||
restart: always
|
restart: always
|
||||||
|
# Lädt die Umgebungsvariablen (die durch deine deploy.yaml erstellt werden)
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
networks:
|
networks:
|
||||||
- proxy
|
- proxy
|
||||||
labels:
|
labels:
|
||||||
# 1. Aktivierung in Traefik
|
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
|
# URL-Routing
|
||||||
# 2. Router-Konfiguration (Domain & HTTPS)
|
- "traefik.http.routers.standortplaner.rule=Host(`standortplaner.enwelo-serverumgebung.cloud`)"
|
||||||
- "traefik.http.routers.bw-samern-ohne.rule=Host(`bw-samern-ohne.enwelo-serverumgebung.cloud`)"
|
- "traefik.http.routers.standortplaner.entrypoints=websecure"
|
||||||
- "traefik.http.routers.bw-samern-ohne.entrypoints=websecure"
|
- "traefik.http.routers.standortplaner.tls.certresolver=le"
|
||||||
- "traefik.http.routers.bw-samern-ohne.tls.certresolver=le"
|
# Authentik-Schutz
|
||||||
|
- "traefik.http.routers.standortplaner.middlewares=authentik@file"
|
||||||
# 3. Zuweisung des internen Service-Ports
|
# Port-Mapping
|
||||||
- "traefik.http.services.bw-samern-ohne.loadbalancer.server.port=3000"
|
- "traefik.http.services.standortplaner.loadbalancer.server.port=3000"
|
||||||
|
|
||||||
# 4. Authentik-Schutz (Middleware)
|
|
||||||
# Wir nutzen jetzt den Namen aus unserer neuen Server-Datei:
|
|
||||||
- "traefik.http.routers.bw-samern-ohne.middlewares=authentik@file"
|
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
proxy:
|
proxy:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue