73 lines
2.5 KiB
PHP
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');
|
|
}
|