diff --git a/config/database.php b/config/database.php
index b42d9b30..aeabec6f 100644
--- a/config/database.php
+++ b/config/database.php
@@ -56,7 +56,7 @@ return [
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
- 'strict' => true,
+ 'strict' => false,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
diff --git a/include/functions.php b/include/functions.php
index 3414f69e..46d7750d 100644
--- a/include/functions.php
+++ b/include/functions.php
@@ -3088,7 +3088,7 @@ function torrenttable($rows, $variant = "torrent") {
$torrentSeedingLeechingStatus = $torrent->listLeechingSeedingStatus($CURUSER['id'], $torrentIdArr);
$tagRep = new \App\Repositories\TagRepository();
$tagCollection = $tagRep->createBasicQuery()->get();
- $tagIdStr = $tagCollection->implode('id', ',');
+ $tagIdStr = $tagCollection->implode('id', ',') ?: '0';
$torrentTagCollection = \App\Models\TorrentTag::query()->whereIn('torrent_id', $torrentIdArr)->orderByRaw("field(tag_id,$tagIdStr)")->get();
$tagKeyById = $tagCollection->keyBy('id');
$torrentTagResult = $torrentTagCollection->groupBy('torrent_id');
@@ -3287,8 +3287,13 @@ foreach ($rows as $row)
/**
* render tags
*/
- $tagIdArr = $torrentTagResult->get($id)->pluck('tag_id')->toArray();
- $tags = $tagRep->renderSpan($tagKeyById, $tagIdArr);
+ $tagOwns = $torrentTagResult->get($id);
+ if ($tagOwns) {
+ $tags = $tagRep->renderSpan($tagKeyById, $tagOwns->pluck('tag_id')->toArray());
+ } else {
+ $tags = '';
+ }
+
if ($displaysmalldescr){
//small descr
$dissmall_descr = trim($row["small_descr"]);
diff --git a/nexus/Install/Install.php b/nexus/Install/Install.php
index a542d7ef..95580b5d 100644
--- a/nexus/Install/Install.php
+++ b/nexus/Install/Install.php
@@ -106,7 +106,7 @@ class Install
$filename = basename($path);
$count = preg_match('/create_(.*)_table.php/', $filename, $matches);
if ($count) {
- $tables[$matches[1]] = $filename;
+ $tables[$matches[1]] = "database/migrations/$filename";
}
}
return $tables;
@@ -202,7 +202,7 @@ class Install
require $originalConfigFile;
$settings = require $defaultSettingsFile;
$settingsFromDb = [];
- if (get_row_count('settings') > 0) {
+ if (NexusDB::schema()->hasTable('settings') && get_row_count('settings') > 0) {
$settingsFromDb = get_setting();
}
$this->doLog("settings form db: " . json_encode($settingsFromDb));
@@ -424,7 +424,7 @@ class Install
$this->doLog("[CREATE ENV] key: $key, new value: $value from example.");
$newData[$key] = $value;
}
- if ($scene == 'install') {
+ if ($scene == 'install' || !file_exists($envFile)) {
if ($key == 'APP_ENV') {
$newData[$key] = 'production';
}
@@ -487,6 +487,9 @@ class Install
public function saveSettings($settings)
{
+ if (!NexusDB::schema()->hasTable('settings')) {
+ $this->runMigrate('database/migrations/2021_06_08_113437_create_settings_table.php');
+ }
foreach ($settings as $prefix => $group) {
$this->doLog("[SAVE SETTING], prefix: $prefix, nameAndValues: " . json_encode($group));
saveSetting($prefix, $group);
@@ -549,7 +552,9 @@ class Install
}
$command = "php " . ROOT_PATH . "artisan migrate";
if (!is_null($path)) {
- $command .= " --path=$path";
+ foreach ((array)$path as $key => $value) {
+ $command .= " --path=$value";
+ }
}
$command .= " --force";
$this->executeCommand($command);
@@ -582,4 +587,5 @@ class Install
$this->doLog("[DATABASE_SEED] success.");
}
}
+
}
diff --git a/nexus/Install/Update.php b/nexus/Install/Update.php
index 5aa0b83e..f9b0bb13 100644
--- a/nexus/Install/Update.php
+++ b/nexus/Install/Update.php
@@ -194,6 +194,7 @@ class Update extends Install
} else {
$this->doLog("no need to run [MIGRATE_TORRENT_TAG]");
}
+
}
private function migrateAttendance()
diff --git a/nexus/Install/update/update.php b/nexus/Install/update/update.php
index a6e6490e..36e20a2d 100644
--- a/nexus/Install/update/update.php
+++ b/nexus/Install/update/update.php
@@ -44,6 +44,13 @@ if ($currentStep == 2) {
'name' => 'Description',
'published_at' => 'Release at',
];
+
+ try {
+ $timezone = nexus_env('TIMEZONE');
+ } catch (\Exception $exception) {
+ $update->doLog("no .env file, release time is github original");
+ $timezone = null;
+ }
$tableRows[] = [
'checkbox' => sprintf(''),
'tag_name' => 'Manual',
@@ -51,8 +58,10 @@ if ($currentStep == 2) {
'published_at' => '---',
];
$latestCommit = $update->getLatestCommit();
- $time = \Carbon\Carbon::parse($latestCommit['committer']['date']);
- $time->tz = nexus_env('TIMEZONE');
+ $time = \Carbon\Carbon::parse($latestCommit['commit']['committer']['date']);
+ if ($timezone) {
+ $time->tz = $timezone;
+ }
$tableRows[] = [
'checkbox' => sprintf('', $latestCommit['sha']),
'tag_name' => 'Latest development code',
@@ -64,7 +73,9 @@ if ($currentStep == 2) {
continue;
}
$time = \Carbon\Carbon::parse($version['published_at']);
- $time->tz = nexus_env('TIMEZONE');
+ if ($timezone) {
+ $time->tz = $timezone;
+ }
$versionUrl = $version['tag_name'] . '|' . $version['tarball_url'];
$checked = !empty($_REQUEST['version_url']) && $_REQUEST['version_url'] == $versionUrl ? ' checked' : '';
$tableRows[] = [