forked from kamba4/sunders
76 lines
1.9 KiB
PHP
76 lines
1.9 KiB
PHP
<?php
|
|
// Admin credentials (must have privileges to create DB/users)
|
|
$dbHost = getenv('MYSQL_HOST');
|
|
$dbAdmin = getenv('MYSQL_USER');
|
|
$dbPassword = getenv('MYSQL_PASSWD');
|
|
$dbName = getenv('MYSQL_DB');
|
|
|
|
// Variables for new users
|
|
$cameraUser = getenv('CAMERA_USER');
|
|
$cameraPassword = getenv('CAMERA_USER_PASSWD');
|
|
|
|
$camSelectUser = getenv('CAMERA_SELECT_USER');
|
|
$camSelectPassword = getenv('CAMERA_SELECT_USER_PASSWD');
|
|
|
|
// Connect to MySQL
|
|
$conn = new mysqli($dbHost, $dbAdmin, $dbPassword);
|
|
|
|
// Check connection
|
|
if ($conn->connect_error) {
|
|
die("Connection failed: " . $conn->connect_error);
|
|
}
|
|
|
|
|
|
if (!$conn->query("CREATE DATABASE IF NOT EXISTS $dbName")) {
|
|
echo "Error creating database: " . $conn->error . "\n";
|
|
}
|
|
if (!$conn->select_db($dbName)) {
|
|
die("Error selecting database: " . $conn->error);
|
|
}
|
|
|
|
|
|
// Create camera user
|
|
$conn->query("CREATE USER IF NOT EXISTS '$cameraUser'@'%' IDENTIFIED BY '$cameraPassword'");
|
|
$conn->query("GRANT ALL PRIVILEGES ON $dbName.* TO '$cameraUser'@'%'");
|
|
|
|
// Create camselect user
|
|
$conn->query("CREATE USER IF NOT EXISTS '$camSelectUser'@'%' IDENTIFIED BY '$camSelectPassword'");
|
|
$conn->query("GRANT SELECT ON $dbName.* TO '$camSelectUser'@'%'");
|
|
|
|
|
|
// position table
|
|
$conn->query("
|
|
CREATE TABLE IF NOT EXISTS position (
|
|
id BIGINT PRIMARY KEY,
|
|
latitude INT,
|
|
longitude INT
|
|
)
|
|
");
|
|
|
|
// tag table
|
|
$conn->query("
|
|
CREATE TABLE IF NOT EXISTS tag (
|
|
id BIGINT,
|
|
k VARCHAR(100),
|
|
v VARCHAR(10000),
|
|
PRIMARY KEY (id, k),
|
|
CONSTRAINT fk_position FOREIGN KEY (id) REFERENCES `position`(id) ON DELETE CASCADE
|
|
)
|
|
");
|
|
|
|
$conn->query("CREATE INDEX IF NOT EXISTS LatLon ON position (latitude, longitude)");
|
|
|
|
|
|
// sync_state table
|
|
$conn->query("
|
|
CREATE TABLE IF NOT EXISTS sync_state (
|
|
k VARCHAR(100),
|
|
v VARCHAR(100)
|
|
)
|
|
");
|
|
$conn->query("INSERT INTO sync_state (k, v) VALUES ('sequenceNumber', '0');");
|
|
|
|
echo "Database, users, and tables created successfully.\n";
|
|
|
|
$conn->close();
|
|
?>
|