friendica_2021-01/scripts/dbstructure.php

68 lines
1.5 KiB
PHP
Raw Normal View History

2017-12-14 17:38:51 +01:00
#!/usr/bin/env php
2017-11-19 22:21:54 +01:00
<?php
/**
* @file scripts/dbstructure.php
* @brief Does database updates from the command line
*/
use Friendica\App;
2017-12-01 09:35:05 +01:00
use Friendica\Core\Config;
2017-12-14 22:13:02 +01:00
use Friendica\Database\DBStructure;
2017-11-19 22:21:54 +01:00
2017-12-14 22:32:53 +01:00
require_once "boot.php";
require_once "include/dba.php";
2017-11-19 22:21:54 +01:00
$a = new App(dirname(__DIR__));
BaseObject::setApp($a);
2017-11-19 22:21:54 +01:00
@include ".htconfig.php";
dba::connect($db_host, $db_user, $db_pass, $db_data);
unset($db_host, $db_user, $db_pass, $db_data);
if ($_SERVER["argc"] == 2) {
switch ($_SERVER["argv"][1]) {
case "dryrun":
2017-12-14 23:18:53 +01:00
DBStructure::update(true, false);
2017-11-19 22:21:54 +01:00
return;
case "update":
2017-12-14 23:18:53 +01:00
DBStructure::update(true, true);
2017-11-19 22:21:54 +01:00
$build = Config::get('system','build');
if (!x($build)) {
Config::set('system', 'build', DB_UPDATE_VERSION);
$build = DB_UPDATE_VERSION;
}
$stored = intval($build);
$current = intval(DB_UPDATE_VERSION);
// run any left update_nnnn functions in update.php
for ($x = $stored; $x < $current; $x ++) {
$r = run_update_function($x);
if (!$r) {
break;
}
}
Config::set('system','build',DB_UPDATE_VERSION);
return;
case "dumpsql":
DBStructure::printStructure();
2017-11-19 22:21:54 +01:00
return;
case "toinnodb":
2017-12-14 22:13:02 +01:00
DBStructure::convertToInnoDB();
2017-11-19 22:21:54 +01:00
return;
}
}
// print help
echo $_SERVER["argv"][0]." <command>\n";
echo "\n";
echo "Commands:\n";
echo "dryrun show database update schema queries without running them\n";
echo "update update database schema\n";
echo "dumpsql dump database schema\n";
echo "toinnodb convert all tables from MyISAM to InnoDB\n";
killme();