[ Mini Kiebo ]
Server: Windows NT DESKTOP-5B8S0D4 6.2 build 9200 (Windows 8 Professional Edition) i586
Path:
D:
/
Backup
/
05122024
/
htdocs
/
jurnal-kesmas
/
classes
/
migration
/
upgrade
/
[
Home
]
File: OJSv3_3_0UpgradeMigration.php
<?php /** * @file classes/migration/upgrade/OJSv3_3_0UpgradeMigration.php * * Copyright (c) 2014-2021 Simon Fraser University * Copyright (c) 2000-2021 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @class OJSv3_3_0UpgradeMigration * * @brief Describe database table structures. */ namespace APP\migration\upgrade; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Schema; class OJSv3_3_0UpgradeMigration extends \PKP\migration\upgrade\PKPv3_3_0UpgradeMigration { protected function getSubmissionPath(): string { return 'articles'; } protected function getContextPath(): string { return 'journals'; } protected function getContextTable(): string { return 'journals'; } protected function getContextKeyField(): string { return 'journal_id'; } protected function getContextSettingsTable(): string { return 'journal_settings'; } protected function getSectionTable(): string { return 'sections'; } protected function getSerializedSettings(): array { return [ 'site_settings' => [ 'enableBulkEmails', 'installedLocales', 'pageHeaderTitleImage', 'sidebar', 'styleSheet', 'supportedLocales', ], 'journal_settings' => [ 'disableBulkEmailUserGroups', 'favicon', 'homepageImage', 'pageHeaderLogoImage', 'sidebar', 'styleSheet', 'submissionChecklist', 'supportedFormLocales', 'supportedLocales', 'supportedSubmissionLocales', 'enablePublisherId', 'journalThumbnail', ], 'publication_settings' => [ 'categoryIds', 'coverImage', 'disciplines', 'keywords', 'languages', 'subjects', 'supportingAgencies', ] ]; } /** * Run the migrations. */ public function up(): void { parent::up(); // pkp/pkp-lib#6807 Make sure all submission/issue last modification dates are set DB::statement('UPDATE issues SET last_modified = date_published WHERE last_modified IS NULL'); // Delete the old MODS34 filters DB::statement("DELETE FROM filters WHERE class_name='plugins.metadata.mods34.filter.Mods34SchemaArticleAdapter'"); DB::statement("DELETE FROM filter_groups WHERE symbolic IN ('article=>mods34', 'mods34=>article')"); // Delete mEDRA dependencies DB::statement("DELETE FROM filters WHERE class_name IN ('plugins.importexport.medra.filter.IssueMedraXmlFilter', 'plugins.importexport.medra.filter.ArticleMedraXmlFilter', 'plugins.importexport.medra.filter.GalleyMedraXmlFilter')"); DB::statement("DELETE FROM filter_groups WHERE symbolic IN ('issue=>medra-xml', 'article=>medra-xml', 'galley=>medra-xml')"); DB::statement("DELETE FROM scheduled_tasks WHERE class_name='plugins.importexport.medra.MedraInfoSender'"); DB::statement("DELETE FROM versions WHERE product_type='plugins.importexport' AND product='medra'"); } /** * Complete specific submission file migrations * * The main submission file migration is done in * PKPv3_3_0UpgradeMigration and that migration must * be run before this one. */ protected function migrateSubmissionFiles() { parent::migrateSubmissionFiles(); Schema::table('publication_galleys', function (Blueprint $table) { $table->renameColumn('file_id', 'submission_file_id'); }); DB::statement('UPDATE publication_galleys SET submission_file_id = NULL WHERE submission_file_id = 0'); // pkp/pkp-lib#6616 Delete publication_galleys entries that correspond to nonexistent submission_files $orphanedIds = DB::table('publication_galleys AS pg') ->leftJoin('submission_files AS sf', 'pg.submission_file_id', '=', 'sf.submission_file_id') ->whereNull('sf.submission_file_id') ->whereNotNull('pg.submission_file_id') ->pluck('pg.submission_file_id', 'pg.galley_id'); foreach ($orphanedIds as $galleyId => $submissionFileId) { error_log("Removing orphaned publication_galleys entry ID {$galleyId} with submission_file_id {$submissionFileId}"); DB::table('publication_galleys')->where('galley_id', '=', $galleyId)->delete(); } Schema::table('publication_galleys', function (Blueprint $table) { $table->bigInteger('submission_file_id')->nullable()->unsigned()->change(); $table->foreign('submission_file_id')->references('submission_file_id')->on('submission_files'); }); } }