プロジェクト

全般

プロフィール

Vote #81854

完了

Database migration from Redmine 0.8.7 or earlier fails

Admin Redmine さんが4年以上前に追加. 4年以上前に更新.

ステータス:
Closed
優先度:
通常
担当者:
-
カテゴリ:
Database_21
対象バージョン:
開始日:
2022/05/09
期日:
進捗率:

0%

予定工数:
category_id:
21
version_id:
174
issue_org_id:
36766
author_id:
581153
assigned_to_id:
332
comments:
10
status_id:
5
tracker_id:
1
plus1:
0
affected_version:
closed_on:
affected_version_id:
160
ステータス-->[Closed]

説明

After import mysqldump from the old environment to get all the data and copy the files into the new environment and run
bundle exec rake db:migrate RAILS_ENV=production I got te following error:

== 20090503121505 PopulateMemberRoles: migrating ==============================
rake aborted!
StandardError: An error has occurred, all later migrations canceled:

undefined method `inherit_members?' for #
/opt/rh/rh-ruby25/root/usr/share/gems/gems/activemodel-5.2.4.2/lib/active_model/attribute_methods.rb:430:in `method_missing'
/data/redmine/sf-redmine_redmine-4.1.1/app/models/member_role.rb:72:in `block in add_role_to_subprojects'

Please see details in the attached file.

Environment:
  Redmine version                4.1.1.stable
  Ruby version                   2.5.9-p229 (2021-04-05) [x86_64-linux]
  Rails version                  5.2.4.2
  Environment                    production
  Database adapter               Mysql2
  Mailer queue                   ActiveJob::QueueAdapters::AsyncAdapter
  Mailer delivery                smtp
SCM:
  Subversion                     1.7.14
  Git                            1.8.3.1
  Filesystem
Redmine plugins:
  no plugin installed

MySQL Server version: 5.5.52 MySQL Community Server (GPL)

-------------

Old Environment
Redmine 0.8.7.stable (MySQL)
Server version: 5.0.83-community-log MySQL Community Edition (GPL)

journals

Hi there,
Unfortunately, I can't help you directly, but my approach to problems like this is to try not to upgrade in such big steps. I would try upgrading to version 1.2 first... https://www.redmine.org/projects/redmine/wiki/RedmineUpgrade/46
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------
Could you check if changing @app/models/member_role.rb@ as follows fixes the problem?

<pre><code class="diff">
Index: app/models/member_role.rb
===================================================================
--- app/models/member_role.rb (リビジョン 21454)
+++ app/models/member_role.rb (作業コピー)
@@ -69,7 +69,7 @@

def add_role_to_subprojects
member.project.children.each do |subproject|
- if subproject.inherit_members?
+ if subproject.try(:inherit_members?)
child_member = Member.find_or_new(subproject.id, member.user_id)
child_member.member_roles << MemberRole.new(:role => role, :inherited_from => id)
child_member.save!
</code></pre>
--------------------------------------------------------------------------------
The reason the error occurs is that when executing migration 20090503121505_populate_member_roles.rb, the callback for the MemberRole model attempts to access columns in the projects table that are created in later migrations.

The problem can be fixed by replacing @Member.create!@ with @Member.insert!@ in the migration to avoid extra callback execution.
--------------------------------------------------------------------------------
Hello Go MAEDA,

first thank you very much for your support!

Changing the app/models/member_role.rb as described above fixes the problem.
I was able to migrate the db without any further errors.

Now I see you provide a 36766.patch for this issue.
What is the best way for further migrations? Apply the 36766.patch or edit the app/models/member_role.rb file or both?

Thanks in advance.

--------------------------------------------------------------------------------
Bernhard Kotzur wrote:
> Now I see you provide a 36766.patch for this issue.
> What is the best way for further migrations? Apply the 36766.patch or edit the app/models/member_role.rb file or both?

Applying the 36766.patch is better. That is the fundamental measure. Changes for app/models/member_role.rb is just a quick workaround.

--------------------------------------------------------------------------------
Setting the target version to 4.1.7.
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------
Committed the fix.
--------------------------------------------------------------------------------


related_issues

relates,Needs feedback,19174,db migrate error from old version to 2.6

Admin Redmine さんが4年以上前に更新

  • カテゴリDatabase_21 にセット
  • 対象バージョン4.1.7_174 にセット

他の形式にエクスポート: Atom PDF

いいね!0
いいね!0