On Sat, Jan 16, 2016 at 6:09 AM, Christian Hammond <chip...@chipx86.com> wrote:
> Hi Ben,
>
> You'll have a much easier time restoring from a backup. It's hard to say how
> far it went through the evolution process, and unfortunately today it
> doesn't keep track of how far it got and what it'd have to do to recover.
> You'd have a lot of trial and error to fix it manually. You can try it,
> though.
>
> Basically, you'll need to dump the SQL that the evolutions want to apply,
> and go through and hand-undo each thing it did until you get back to the
> point of where it was. You'd definitely want to do a backup first, though.

Unfortunately people had started using it already so this was the
easiest approach :(

Would it be possible to get a copy of a normally, safely upgraded
schema so I can double check I haven't clobbered anything?

The queries I ended up having to run to revert things to a state where
the upgrade process would work was:

160115 19:34:12 2197763 Query   ALTER TABLE
accounts_reviewrequestvisit DROP COLUMN visibility
160115 19:34:24 2197763 Query   DROP INDEX
`accounts_reviewrequestvisit_05ee5d21` ON
`accounts_reviewrequestvisit`
160115 19:34:45 2197763 Query   ALTER TABLE attachments_fileattachment
DROP COLUMN attachment_revision, DROP COLUMN attachment_history_id
160115 19:34:58 2197763 Query   ALTER TABLE diffviewer_filediff DROP
COLUMN raw_diff_hash_id, DROP COLUMN raw_parent_diff_hash_id
160115 19:36:18 2197763 Query   ALTER TABLE `reviews_group` DROP
COLUMN `email_list_only`, DROP COLUMN is_default_group
160115 19:36:25 2197763 Query   DROP TABLE
reviews_reviewrequest_file_attachment_histories

Note that I observed that the Reviewboard process tries to reverse
it's failed upgrade by doing a rollback. It is noted in the case of
InnoDB that schema changes cannot be rolled back (see
http://www.sitepoint.com/mysql-transaction-gotchas-good-parts/)

>
> Christian

Cheers,
Ben

>
> --
> Christian Hammond - chip...@chipx86.com
> Review Board - https://www.reviewboard.org
> Beanbag, Inc. - https://www.beanbaginc.com
>
> On Fri, Jan 15, 2016 at 2:26 AM, Ben Cooksley <bcooks...@kde.org> wrote:
>>
>> On Fri, Jan 15, 2016 at 11:09 PM, Ben Cooksley <bcooks...@kde.org> wrote:
>> > On Fri, Jan 15, 2016 at 11:04 PM, Christian Hammond
>> > <christ...@beanbaginc.com> wrote:
>> >> Hi Ben,
>> >>
>> >> This is due to a mismatch between MySQL table types. The existing
>> >> tables are
>> >> likely MyISAM, with MySQL now defaulting to InnoDB for new ones. You'll
>> >> need
>> >> to either migrate all the existing tables, or tell MySQL to use the
>> >> existing
>> >> type for new tables.
>> >>
>> >> (It's a pretty terrible error, but unfortunately, beyond our control. I
>> >> just
>> >> recognize this sort of problem.)
>> >
>> > Argh. Our systems usually have InnoDB as default, guess that isn't the
>> > case when we originally had Reviewboard provisioned.
>> > I shouldn't see any issues migrating all tables into InnoDB correct?
>>
>> Seems it is safe.
>> Unfortunately it looks like one of the evolutions got part way through
>> the process.
>>
>> CommandError: Error applying evolution: (1060, "Duplicate column name
>> 'visibility'")
>>
>> Any suggestions (I could restore from backups, but if I can avoid it...)?
>>
>> >
>> >>
>> >> Christian
>> >
>> > Cheers,
>> > Ben
>>
>> Thanks,
>> Ben
>>
>> >
>> >>
>> >> --
>> >> Christian Hammond - christ...@beanbaginc.com
>> >> Review Board - https://www.reviewboard.org
>> >> Beanbag, Inc. - https://www.beanbaginc.com
>> >>
>> >> On Thu, Jan 14, 2016 at 11:27 PM, Ben Cooksley <bcooks...@kde.org>
>> >> wrote:
>> >>>
>> >>> Hi everyone,
>> >>>
>> >>> While upgrading from Reviewboard 2.0.17 to 2.5.2 i've encountered a
>> >>> few SQL errors.
>> >>> Reviewboard itself appears to boot and run fine though, based on the
>> >>> nature of the errors I suspect it's a case of index name collisions.
>> >>>
>> >>> Output from the upgrade process is below:
>> >>>
>> >>> (virtualenv)reviewboard@mimi:~$ rb-site upgrade
>> >>> /srv/www/reviewboard/git.reviewboard.kde.org/
>> >>> Rebuilding directory structure
>> >>> Updating database. This may take a while.
>> >>>
>> >>> The log output below, including warnings and errors,
>> >>> can be ignored unless upgrade fails.
>> >>>
>> >>> ------------------ <begin log output> ------------------
>> >>> Creating tables ...
>> >>> Creating table accounts_trophy
>> >>>
>> >>> [!] There was an error synchronizing the database. Make sure the
>> >>>     database is created and has the appropriate permissions, and then
>> >>>     continue.
>> >>> [!] Details: (1005, "Can't create table 'reviewboard_git.#sql-
>> >>>     331d_214215' (errno: 150)")
>> >>>
>> >>> Press Enter to continue
>> >>> Creating tables ...
>> >>> Creating table attachments_fileattachmenthistory
>> >>> Creating table diffviewer_rawfilediffdata
>> >>> Creating table notifications_webhooktarget_repositories
>> >>>
>> >>> [!] There was an error synchronizing the database. Make sure the
>> >>>     database is created and has the appropriate permissions, and then
>> >>>     continue.
>> >>> [!] Details: (1005, "Can't create table 'reviewboard_git.#sql-
>> >>>     331d_214215' (errno: 150)")
>> >>>
>> >>> Press Enter to continue
>> >>> Creating tables ...
>> >>> Creating table notifications_webhooktarget
>> >>>
>> >>> [!] There was an error synchronizing the database. Make sure the
>> >>>     database is created and has the appropriate permissions, and then
>> >>>     continue.
>> >>> [!] Details: (1005, "Can't create table 'reviewboard_git.#sql-
>> >>>     331d_214215' (errno: 150)")
>> >>>
>> >>> Press Enter to continue
>> >>> Creating tables ...
>> >>> Creating table webapi_webapitoken
>> >>>
>> >>> [!] There was an error synchronizing the database. Make sure the
>> >>>     database is created and has the appropriate permissions, and then
>> >>>     continue.
>> >>> [!] Details: (1005, "Can't create table 'reviewboard_git.#sql-
>> >>>     331d_214215' (errno: 150)")
>> >>>
>> >>> Press Enter to continue
>> >>> Creating tables ...
>> >>> Upgrading Review Board from 2.0.17 to 2.5.2
>> >>> There are unapplied evolutions for accounts.
>> >>> There are unapplied evolutions for attachments.
>> >>> There are unapplied evolutions for diffviewer.
>> >>> There are unapplied evolutions for notifications.
>> >>> There are unapplied evolutions for reviews.
>> >>> There are unapplied evolutions for webapi.
>> >>> Adding baseline version for new models
>> >>> Evolutions in notifications baseline: webhooktarget_extra_state,
>> >>> webhooktarget_extra_data_null
>> >>> Project signature has changed - an evolution is required
>> >>> Installing custom SQL ...
>> >>> Installing indexes ...
>> >>> Installed 0 object(s) from 0 fixture(s)
>> >>> CommandError: Error applying evolution: (1005, "Can't create table
>> >>> 'reviewboard_git.#sql-331d_214238' (errno: 150)")
>> >>>
>> >>> Any pointers?
>> >>>
>> >>> Cheers,
>> >>> Ben Cooksley
>> >>> KDE Sysadmin
>> >>>
>> >>> --
>> >>>
>> >>> ---
>> >>> You received this message because you are subscribed to the Google
>> >>> Groups
>> >>> "reviewboard-dev" group.
>> >>> To unsubscribe from this group and stop receiving emails from it, send
>> >>> an
>> >>> email to reviewboard-dev+unsubscr...@googlegroups.com.
>> >>> For more options, visit https://groups.google.com/d/optout.
>> >>
>> >>
>> >> --
>> >>
>> >> ---
>> >> You received this message because you are subscribed to the Google
>> >> Groups
>> >> "reviewboard-dev" group.
>> >> To unsubscribe from this group and stop receiving emails from it, send
>> >> an
>> >> email to reviewboard-dev+unsubscr...@googlegroups.com.
>> >> For more options, visit https://groups.google.com/d/optout.
>>
>> --
>>
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "reviewboard-dev" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to reviewboard-dev+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>
>
> --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "reviewboard-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to reviewboard-dev+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
Supercharge your Review Board with Power Pack: 
https://www.reviewboard.org/powerpack/
Want us to host Review Board for you? Check out RBCommons: 
https://rbcommons.com/
Happy user? Let us know! https://www.reviewboard.org/users/
--- 
You received this message because you are subscribed to the Google Groups 
"reviewboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to reviewboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to