37301-vm/db/setup.php
Flatlogic Bot 9bf0056520 test
2026-01-07 09:28:17 +00:00

73 lines
2.5 KiB
PHP

<?php
require_once __DIR__ . '/config.php';
function run_migrations() {
try {
$pdo = db();
// Enable error reporting
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "
CREATE TABLE IF NOT EXISTS `inquiries` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(255) NOT NULL,
`company` VARCHAR(255) NULL,
`email` VARCHAR(255) NOT NULL,
`phone` VARCHAR(50) NULL,
`message` TEXT NOT NULL,
`source_page` VARCHAR(255) NULL,
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);";
$pdo->exec($sql);
$sql_products = "
CREATE TABLE IF NOT EXISTS `products` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(255) NOT NULL,
`description` TEXT NOT NULL,
`images` TEXT,
`material` VARCHAR(255),
`application` VARCHAR(255),
`url_slug` VARCHAR(255) NOT NULL UNIQUE,
`seo_title` VARCHAR(255),
`seo_meta_description` TEXT,
`canonical_url` VARCHAR(255),
`og_title` VARCHAR(255),
`og_description` TEXT,
`og_image` VARCHAR(255),
`schema_type` VARCHAR(255) DEFAULT 'Product',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);";
$pdo->exec($sql_products);
$sql_posts = "
CREATE TABLE IF NOT EXISTS `posts` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`title` VARCHAR(255) NOT NULL,
`slug` VARCHAR(255) NOT NULL UNIQUE,
`content` TEXT NOT NULL,
`author` VARCHAR(255),
`image_url` VARCHAR(255),
`published_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
`seo_title` VARCHAR(255),
`seo_meta_description` TEXT,
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);";
$pdo->exec($sql_posts);
} catch (PDOException $e) {
error_log("DB setup failed: " . $e->getMessage());
// Do not die, just log the error. The page should still render.
}
}
// Check if a flag file exists to prevent running this on every page load
$migration_flag = __DIR__ . '/.migration_done';
if (!file_exists($migration_flag)) {
run_migrations();
// Create the flag file
file_put_contents($migration_flag, 'done');
}