<?php
/**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2022, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
public static function create(bool $verbose, bool $action)
{
+ // Delete previously used views that aren't used anymore
+ foreach(['post-view', 'post-thread-view'] as $view) {
+ if (self::isView($view)) {
+ $sql = sprintf("DROP VIEW IF EXISTS `%s`", DBA::escape($view));
+ if (!empty($sql) && $verbose) {
+ echo $sql . ";\n";
+ }
+
+ if (!empty($sql) && $action) {
+ DBA::e($sql);
+ }
+ }
+ }
+
$definition = self::definition();
foreach ($definition as $name => $structure) {
{
$database = self::definition($basePath, false);
- foreach ($database AS $name => $structure) {
+ foreach ($database as $name => $structure) {
echo "--\n";
echo "-- VIEW $name\n";
echo "--\n";
$r = true;
$sql_rows = [];
- foreach ($structure["fields"] AS $fieldname => $origin) {
+ foreach ($structure["fields"] as $fieldname => $origin) {
if (is_string($origin)) {
$sql_rows[] = $origin . " AS `" . DBA::escape($fieldname) . "`";
} elseif (is_array($origin) && (sizeof($origin) == 2)) {
}
if (self::isView($name)) {
- $sql = sprintf("DROP VIEW `%s`", DBA::escape($name));
+ $sql = sprintf("DROP VIEW IF EXISTS `%s`", DBA::escape($name));
} elseif (self::isTable($name)) {
- $sql = sprintf("DROP TABLE `%s`", DBA::escape($name));
+ $sql = sprintf("DROP TABLE IF EXISTS `%s`", DBA::escape($name));
}
- if ($verbose) {
+ if (!empty($sql) && $verbose) {
echo $sql . ";\n";
}
- if ($action) {
+ if (!empty($sql) && $action) {
DBA::e($sql);
}
}
/**
- * Check if the given table/view is a view
+ * Check if the given table/view is a table
*
* @param string $table
* @return boolean "true" if it's a table