Comienzo con DeepSeek

Verfasst von

in

Para borrar las tablas y empezar de cero:

Crear un archivo temporal llamado reset-tables.php dentro de la carpeta del plugin y luego acceder a https://tudominio.com/wp-content/plugins/industrie-imkerei-system/reset-tables.php

BORRAR EL ARCHIVO después de ejecutarlo.

<?php
// reset-tables.php - Ejecutar UNA SOLA VEZ y luego BORRAR el archivo
require_once('../../../wp-load.php');

global $wpdb;

$tables = array(
    $wpdb->prefix . 'bienenvoelker',
    $wpdb->prefix . 'imkerei_history'
);

foreach ($tables as $table) {
    $wpdb->query("DROP TABLE IF EXISTS $table");
    echo "Tabla $table eliminada.<br>";
}

// Reinstalar tablas
if (function_exists('ImkereiDatabase::install_tables')) {
    ImkereiDatabase::install_tables();
    echo "Tablas reinstaladas correctamente.";
} else {
    require_once('includes/class-database.php');
    ImkereiDatabase::install_tables();
    echo "Tablas reinstaladas correctamente.";
}
?>

Esta es la estructura actual:

wp-content/plugins/industrie-imkerei-system/
│
├── industrie-imkerei-system.php
│
├── assets/
│   ├── style.css
│   ├── app.js
│   ├── map.js (opcional)
│   └── admin-style.css (crear si quieres)
│
├── includes/
│   ├── class-database.php
│   ├── class-ajax.php
│   ├── class-shortcodes.php
│   ├── class-qr.php
│   ├── class-history.php
│   ├── class-analytics.php
│   ├── class-priority.php
│   ├── class-inspections.php
│   ├── class-gps.php
│   ├── class-live-dashboard.php
│   ├── class-map.php
│   ├── class-medication.php
│   └── class-queen.php
│
└── img/
    └── flecha.png (opcional)

SQL corregido para MySQL 8.0 (ejecutar en phpMyAdmin)

-- ============================================
-- CORREGIR TABLA wp_bienenvoelker
-- ============================================

-- Eliminar columnas duplicadas/obsoletas (una por una)
ALTER TABLE `wp_bienenvoelker` DROP COLUMN `queen_year`;
ALTER TABLE `wp_bienenvoelker` DROP COLUMN `queen_line`;
ALTER TABLE `wp_bienenvoelker` DROP COLUMN `queen_status`;
ALTER TABLE `wp_bienenvoelker` DROP COLUMN `medication_status`;
ALTER TABLE `wp_bienenvoelker` DROP COLUMN `last_treatment`;
ALTER TABLE `wp_bienenvoelker` DROP COLUMN `next_treatment`;
ALTER TABLE `wp_bienenvoelker` DROP COLUMN `prioritaet`;
ALTER TABLE `wp_bienenvoelker` DROP COLUMN `medication`;

-- Añadir columnas si no existen (usar procedimiento para verificar)
-- Primero, verificar y añadir koenigin_jahr
SET @dbname = DATABASE();
SET @tablename = 'wp_bienenvoelker';
SET @columnname = 'koenigin_jahr';
SET @preparedStatement = (SELECT IF(
  (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = @dbname AND TABLE_NAME = @tablename AND COLUMN_NAME = @columnname) = 0,
  CONCAT('ALTER TABLE ', @tablename, ' ADD COLUMN ', @columnname, ' INT NULL AFTER letzte_kontrolle;'),
  'SELECT 1;'
));
PREPARE stmt FROM @preparedStatement;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

-- Añadir koenigin_genetik
SET @columnname = 'koenigin_genetik';
SET @preparedStatement = (SELECT IF(
  (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = @dbname AND TABLE_NAME = @tablename AND COLUMN_NAME = @columnname) = 0,
  CONCAT('ALTER TABLE ', @tablename, ' ADD COLUMN ', @columnname, ' TEXT NULL AFTER koenigin_jahr;'),
  'SELECT 1;'
));
PREPARE stmt FROM @preparedStatement;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

-- Añadir koenigin_notizen
SET @columnname = 'koenigin_notizen';
SET @preparedStatement = (SELECT IF(
  (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = @dbname AND TABLE_NAME = @tablename AND COLUMN_NAME = @columnname) = 0,
  CONCAT('ALTER TABLE ', @tablename, ' ADD COLUMN ', @columnname, ' TEXT NULL AFTER koenigin_genetik;'),
  'SELECT 1;'
));
PREPARE stmt FROM @preparedStatement;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

-- Añadir koenigin_letzte_ablage
SET @columnname = 'koenigin_letzte_ablage';
SET @preparedStatement = (SELECT IF(
  (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = @dbname AND TABLE_NAME = @tablename AND COLUMN_NAME = @columnname) = 0,
  CONCAT('ALTER TABLE ', @tablename, ' ADD COLUMN ', @columnname, ' DATETIME NULL AFTER koenigin_notizen;'),
  'SELECT 1;'
));
PREPARE stmt FROM @preparedStatement;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

-- Añadir koenigin_status
SET @columnname = 'koenigin_status';
SET @preparedStatement = (SELECT IF(
  (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = @dbname AND TABLE_NAME = @tablename AND COLUMN_NAME = @columnname) = 0,
  CONCAT('ALTER TABLE ', @tablename, ' ADD COLUMN ', @columnname, ' VARCHAR(20) DEFAULT ''AKTIV'' AFTER koenigin_letzte_ablage;'),
  'SELECT 1;'
));
PREPARE stmt FROM @preparedStatement;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

-- Añadir naechste_behandlung (si no existe)
SET @columnname = 'naechste_behandlung';
SET @preparedStatement = (SELECT IF(
  (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = @dbname AND TABLE_NAME = @tablename AND COLUMN_NAME = @columnname) = 0,
  CONCAT('ALTER TABLE ', @tablename, ' ADD COLUMN ', @columnname, ' DATE NULL AFTER gps_lng;'),
  'SELECT 1;'
));
PREPARE stmt FROM @preparedStatement;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

-- Actualizar valores nulos
UPDATE `wp_bienenvoelker` SET `koenigin_status` = 'AKTIV' WHERE `koenigin_status` IS NULL OR `koenigin_status` = '';

-- ============================================
-- CORREGIR TABLA wp_imkerei_history (añadir columna notes)
-- ============================================

SET @tablename = 'wp_imkerei_history';
SET @columnname = 'notes';
SET @preparedStatement = (SELECT IF(
  (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = @dbname AND TABLE_NAME = @tablename AND COLUMN_NAME = @columnname) = 0,
  CONCAT('ALTER TABLE ', @tablename, ' ADD COLUMN ', @columnname, ' TEXT NULL AFTER device;'),
  'SELECT 1;'
));
PREPARE stmt FROM @preparedStatement;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

-- ============================================
-- CREAR TABLA DE TRATAMIENTOS (si no existe)
-- ============================================

CREATE TABLE IF NOT EXISTS `wp_imkerei_treatments` (
    `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
    `volk_id` VARCHAR(50) NOT NULL,
    `medication_name` VARCHAR(100) NOT NULL,
    `medication_type` VARCHAR(50),
    `dosage` VARCHAR(100),
    `application_date` DATE NOT NULL,
    `next_application_date` DATE,
    `expiry_date` DATE,
    `status` VARCHAR(20) DEFAULT 'ACTIVE',
    `notes` TEXT,
    `created_by` VARCHAR(100),
    `created_at` DATETIME,
    PRIMARY KEY (`id`),
    INDEX `idx_volk_id` (`volk_id`),
    INDEX `idx_application_date` (`application_date`),
    INDEX `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert