-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmigration.php
41 lines (35 loc) · 1.46 KB
/
migration.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
include 'env.php';
if (!file_exists(__DIR__ . DIRECTORY_SEPARATOR . 'storage')) {
mkdir(__DIR__ . DIRECTORY_SEPARATOR . 'storage', 0777, true);
}
$db = new mysqli($_ENV["DB_HOST"], $_ENV["DB_USERNAME"], $_ENV["DB_PASSWORD"], $_ENV["DB_DATABASE"]);
if (!$db) {
echo "\033[31m" . "Error: Unable to connect to MySQL." . "\033[37m\r" . PHP_EOL;
echo "\033[31m" . "Debugging errno: " . mysqli_connect_errno() . "\033[37m\r" . PHP_EOL;
echo "\033[31m" . "Debugging error: " . mysqli_connect_error() . "\033[37m\r" . PHP_EOL;
exit;
}
echo "\033[32m" . "Success connect to database !" . "\033[37m\r" . PHP_EOL;
try {
$result = $db->query("SELECT * FROM information_schema.tables WHERE table_schema = '" . $_ENV['DB_DATABASE'] . "' AND table_name = 'website' LIMIT 1");
if ($result->num_rows === 0) {
$query = "CREATE TABLE website(
id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
scheme VARCHAR(255),
host VARCHAR(255),
endpoint VARCHAR(255),
storage VARCHAR(255),
created TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)";
$query = preg_replace('/\s+/', ' ', $query);
$result = $db->query($query);
if ($result) {
echo "\033[32m" . "Table created" . "\033[37m\r" . PHP_EOL;
} else {
echo "\033[31m" . "Failed to create table" . "\033[37m\r" . PHP_EOL;
}
}
} catch (Error $error) {
throw new ErrorException($error);
}