[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[EP-tech] EPrints v3.1.2 migration to the latest version
- Subject: [EP-tech] EPrints v3.1.2 migration to the latest version
- From: drn at ecs.soton.ac.uk (David R Newman)
- Date: Sat, 16 Jan 2021 18:37:49 +0000
- In-reply-to: <EMEW3|11c839f32612278b4c8482515918fe38x0FI4k14eprints-tech-bounces|ecs.soton.ac.uk|CAEBFXm7s9w2p8kBOxy+sbAhKL3UL_N=PnWuoWgf=-kE51=B2mA@mail.gmail.com>
- References: <CAEBFXm7s9w2p8kBOxy+sbAhKL3UL_N=PnWuoWgf=-kE51=B2mA@mail.gmail.com> <CAEBFXm7s9w2p8kBOxy+sbAhKL3UL_N=PnWuoWgf=-kE51=B2mA@mail.gmail.com> <EMEW3|11c839f32612278b4c8482515918fe38x0FI4k14eprints-tech-bounces|ecs.soton.ac.uk|CAEBFXm7s9w2p8kBOxy+sbAhKL3UL_N=PnWuoWgf=-kE51=B2mA@mail.gmail.com> <3e820d9c-bbf1-709f-06aa-1d3426f3cff1@ecs.soton.ac.uk>
Hi Guntis,
This looks to be down to foreign key constraints.? As you are trying to
upgrade from a version of EPrints that is over 12 years ago, I cannot
know whether this was a known issue at the time or just some quirk of
running an very old EPrints database schema in what may be a rather more
recent version of MySQL.
Assuming that you have suitables backups of the database so you can roll
back if things go wrong, I would recommend temporarily adding the
following line to perl_lib/EPrints/Database/mysql.pm (for EPrints
3.3.16) after line 243:
|$self->do('SET foreign_key_checks = 0;'); |
This should allow you to run the upgrade script without getting any
errors like you previously reported.? However, once you have hopefully
run epadmin upgrade successfully you should immediately remove this line
from mysql.pm.? This temporary change should allow the upgrade script to
tinker with the database schema without having to worry about foreign
keys constraints being temporarily broken.? Hopefully, by the time it
finishes the database schema will be fully upgraded but there will not
be any foreign key constraint issues still present.
I am not sure whether the issues you had from you first run of "epadmin
upgrade" will have left the database in an inconsistent state, so it may
be worth restoring the database from a backup be re-running "epadmin
upgrade" with the change I have suggested to mysql.pm.
Let me know how it goes.? I may be able to help if you still have
problems but I have really much worked with EPrints prior to 3.2.? There
may be some veterans on the list that may know more about known issues
upgrading from 3.1.x to 3.3.
Regards
David Newman
On 16/01/2021 18:01, Guntis Zelvis via Eprints-tech wrote:
> CAUTION: This e-mail originated outside the University of Southampton.
>
> Hello! I am trying to migrate EPrints v3.1.2 to the latest version. As
> I understand it is impossible to migrate straight to v3.4.2, so first
> I try to install v3.3.16 and upgrade repository to this version, but
> there is few errors in output of 'epadmin upgrade REPOID'
>
> Added dataset upload_progress
> DBD::mysql::db do failed: Can't create table 'REPOID.#sql-10710_38'
> (errno: 150) at /usr/share/eprints/bin/../perl_lib/EPrints/Database.pm
> line 3052, <STDIN> line 1.
> SQL ERROR (do): ALTER TABLE `subject_name_sortvalue` ADD CONSTRAINT
> `subject_name_sortvalue_fk` FOREIGN KEY(`subjectid`) REFERENCES
> `subject`(`subjectid`) ON DELETE CASCADE
> SQL ERROR (do): Can't create table 'REPOID.#sql-10710_38' (errno: 150) (#1005)
>
> Later there is:
>
> Upgrading dataset file
> Upgrading `file` by insertion
> DBD::mysql::db do failed: Cannot delete or update a parent row: a
> foreign key constraint fails at
> /usr/share/eprints/bin/../perl_lib/EPrints/Database.pm line 3052,
> <STDIN> line 1.
> SQL ERROR (do): DROP TABLE IF EXISTS `old_file`
> SQL ERROR (do): Cannot delete or update a parent row: a foreign key
> constraint fails (#1217)
>
> Upgrading dataset upload_progress
> Upgrading `upload_progress` by insertion
> DBD::mysql::db do failed: Cannot delete or update a parent row: a
> foreign key constraint fails at
> /usr/share/eprints/bin/../perl_lib/EPrints/Database.pm line 3052,
> <STDIN> line 1.
> SQL ERROR (do): DROP TABLE IF EXISTS `old_upload_progress`
> SQL ERROR (do): Cannot delete or update a parent row: a foreign key
> constraint fails (#1217)
>
> Upgrading rindex and grep tables for subject
> DBD::mysql::st execute failed: Table 'REPOID.subject__rindex' doesn't
> exist at /usr/share/eprints/perl_lib/EPrints/Database/mysql.pm line
> 423, <STDIN> line 1.
> DBD::mysql::st fetch failed: fetch() without execute() at
> /usr/share/eprints/perl_lib/EPrints/Database/mysql.pm line 426,
> <STDIN> line 1.
> DBD::mysql::st execute failed: Table 'REPOID.subject__rindex' doesn't
> exist at /usr/share/eprints/bin/epadmin line 2769, <STDIN> line 1.
> DBD::mysql::st fetch failed: fetch() without execute() at
> /usr/share/eprints/bin/epadmin line 2770, <STDIN> line 1.
> DBD::mysql::db do failed: Table 'REPOID.subject__rindex' doesn't exist
> at /usr/share/eprints/bin/../perl_lib/EPrints/Database.pm line 3052,
> <STDIN> line 1.
> SQL ERROR (do): ALTER IGNORE TABLE subject__rindex MODIFY field
> VARCHAR(64) CHARACTER SET UTF8, MODIFY word VARCHAR(128) CHARACTER SET
> UTF8, DEFAULT CHARACTER SET UTF8, ADD PRIMARY
> KEY(field,word,`subjectid`)
> SQL ERROR (do): Table 'REPOID.subject__rindex' doesn't exist (#1146)
>
> And everything stops here:
> Upgrading dataset metafield
>
> ------------------------------------------------------------------
> ---------------- EPrints System Error ----------------------------
> ------------------------------------------------------------------
> An unexpected error occurred while attempting to convert tables to UTF-8.
>
> ------------------------------------------------------------------
> EPrints System Error inducing stack dump
> at /usr/share/eprints/bin/../perl_lib/EPrints.pm line 147, <STDIN> line 1.
> EPrints::abort() called at /usr/share/eprints/bin/epadmin line 2753
> main::upgrade_mysql_charset('EPrints::Repository=HASH(0xb9fc80)',
> 'EPrints::Database::mysql=HASH(0x384b458)') called at
> /usr/share/eprints/bin/epadmin line 3008
> main::upgrade_3_1_2_to_3_2_0('EPrints::Repository=HASH(0xb9fc80)',
> 'EPrints::Database::mysql=HASH(0x384b458)') called at
> /usr/share/eprints/bin/epadmin line 2887
> main::upgrade('REPOID') called at
> /usr/share/eprints/bin/epadmin line 320
>
> How to fix these errors and complete repository upgrade?
>
> *** Options: http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech
> *** Archive: https://eur03.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.eprints.org%2Ftech.php%2F&data=04%7C01%7Ceprints-tech%40ecs.soton.ac.uk%7Cd7b2ad38ef034e6d49b508d8ba4dd441%7C4a5378f929f44d3ebe89669d03ada9d8%7C0%7C0%7C637464190806800293%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=vEqP8%2BjBXLb7e13GAQGiwUGn9z2IhukqGXFzZeuQvRI%3D&reserved=0
> *** EPrints community wiki: https://eur03.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwiki.eprints.org%2F&data=04%7C01%7Ceprints-tech%40ecs.soton.ac.uk%7Cd7b2ad38ef034e6d49b508d8ba4dd441%7C4a5378f929f44d3ebe89669d03ada9d8%7C0%7C0%7C637464190806810287%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=%2BaVFFKRgOQSSoihBlu5uQ2Hb601X5wjkaqSgbap89N4%3D&reserved=0
--
This email has been checked for viruses by AVG.
https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.avg.com%2F&data=04%7C01%7Ceprints-tech%40ecs.soton.ac.uk%7Cd7b2ad38ef034e6d49b508d8ba4dd441%7C4a5378f929f44d3ebe89669d03ada9d8%7C0%7C0%7C637464190806810287%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=1xS8DSQPkvO8sVG9QikCWDuQFSzXtY42QklCFvNkKZE%3D&reserved=0
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ecs.soton.ac.uk/pipermail/eprints-tech/attachments/20210116/b8067ff9/attachment-0001.html