[ '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'); }); } }