61 lines
2.1 KiB
PHP
61 lines
2.1 KiB
PHP
|
|
<?php
|
||
|
|
require_once __DIR__ . '/../vendor/autoload.php';
|
||
|
|
require_once __DIR__ . '/config.php';
|
||
|
|
|
||
|
|
$conn = \Doctrine\DBAL\DriverManager::getConnection([
|
||
|
|
'driver' => 'pdo_mysql',
|
||
|
|
'host' => DB_HOST,
|
||
|
|
'dbname' => DB_NAME,
|
||
|
|
'user' => DB_USER,
|
||
|
|
'password' => DB_PASS,
|
||
|
|
'charset' => 'utf8mb4',
|
||
|
|
]);
|
||
|
|
|
||
|
|
// PDO für delight-im/auth
|
||
|
|
$pdo = $conn->getNativeConnection();
|
||
|
|
$auth = new \Delight\Auth\Auth($pdo);
|
||
|
|
|
||
|
|
// Tabellen anlegen falls nicht vorhanden
|
||
|
|
$conn->executeStatement('
|
||
|
|
CREATE TABLE IF NOT EXISTS goals (
|
||
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||
|
|
user_id INT NOT NULL,
|
||
|
|
name VARCHAR(255) NOT NULL,
|
||
|
|
unit VARCHAR(50) NOT NULL DEFAULT \'Stück\',
|
||
|
|
daily FLOAT NOT NULL DEFAULT 1,
|
||
|
|
days INT NOT NULL DEFAULT 30,
|
||
|
|
start DATETIME NOT NULL,
|
||
|
|
sets JSON NOT NULL DEFAULT (\'[]\'),
|
||
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||
|
|
) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
|
||
|
|
');
|
||
|
|
|
||
|
|
$conn->executeStatement('
|
||
|
|
CREATE TABLE IF NOT EXISTS schema_migrations (
|
||
|
|
version VARCHAR(64) NOT NULL PRIMARY KEY,
|
||
|
|
applied_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||
|
|
) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
|
||
|
|
');
|
||
|
|
|
||
|
|
$conn->executeStatement('
|
||
|
|
CREATE TABLE IF NOT EXISTS invites (
|
||
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||
|
|
token VARCHAR(64) NOT NULL UNIQUE,
|
||
|
|
note VARCHAR(255) DEFAULT NULL,
|
||
|
|
created_by INT NOT NULL,
|
||
|
|
used_by INT DEFAULT NULL,
|
||
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
expires_at TIMESTAMP NOT NULL,
|
||
|
|
used_at TIMESTAMP DEFAULT NULL
|
||
|
|
) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
|
||
|
|
');
|
||
|
|
|
||
|
|
// Migrations ausführen
|
||
|
|
foreach (glob(__DIR__ . '/../migrations/*.sql') as $file) {
|
||
|
|
$version = basename($file, '.sql');
|
||
|
|
if (!$conn->fetchOne('SELECT 1 FROM schema_migrations WHERE version = ?', [$version])) {
|
||
|
|
$conn->executeStatement(file_get_contents($file));
|
||
|
|
$conn->executeStatement('INSERT INTO schema_migrations (version) VALUES (?)', [$version]);
|
||
|
|
}
|
||
|
|
}
|