Project

General

Profile

Problems upgrading from 3.1.2.stable to 3.3.0.stable

Added by Brendan Pike over 7 years ago

As I stepped through the update guide RedmineUpgrade everything ran smoothly until (Step 4 - Update the database). I then continually run into either "Table 'x' already exists" or "Duplicate column name" errors. In the forums I found this http://www.redmine.org/boards/2/topics/46173?r=46180#message-46180 which suggested just skipping those parts by by sql, ie. insert into schema_migrations values('x'); I had to do this 59 times!

After which I ended up with no data, it only had the default admin account, forced me to update the password on login, once in I could not find any users / projects etc.

Below is the environment about script output.

Environment:
  Redmine version                3.1.2.stable
  Ruby version                   2.1.5-p273 (2014-11-13) [x86_64-linux-gnu]
  Rails version                  4.2.4
  Environment                    production
  Database adapter               Mysql2
SCM:
  Subversion                     1.8.10
  Git                            2.1.4
  Filesystem                     
Redmine plugins:
  timelog_timer                  2.0.0

Please help, I've been stuck here for a long time.


Replies (18)

RE: Problems upgrading from 3.1.2.stable to 3.3.0.stable - Added by Pavel Potcheptsov over 7 years ago

Uninstall plugin before db migration.
Copy-Paste exact steps during upgrade.

RE: Problems upgrading from 3.1.2.stable to 3.3.0.stable - Added by Brendan Pike over 7 years ago

I uninstalled the plugin, restarted everything then took a backup. Then..

1. Copied config/database.yml and config/configuration.yml to the new directory as well as /files
2. I ran "bundle install --without development test"
3. I ran "bundle exec rake generate_secret_token"
everything is smooth up till here
4. I run "bundle exec rake db:migrate RAILS_ENV=production"

Just as inj previous times I get lots of "Table 'x' already exists issues. eg.

Migrating to CreateUserPreferences (8)
8 CreateUserPreferences: migrating =======================================
-- create_table(:user_preferences)
rake aborted!
StandardError: An error has occurred, all later migrations canceled:

Mysql2::Error: Table 'user_preferences' already exists: CREATE TABLE `user_preferences` (`id` int(11) auto_increment PRIMARY KEY, `user_id` int(11) DEFAULT 0 NOT NULL, `others` text) ENGINE=InnoDB

Dropping the tables each time I encounter one works and allows me to complete the upgrade, but of course it destroys my
content and data and makes for a horrible result.

Please help.

RE: Problems upgrading from 3.1.2.stable to 3.3.0.stable - Added by Pavel Potcheptsov over 7 years ago

You must not copy files from step 1. You have to rename .example files in new installation and edit them because they may have different format on the newest redmine version.

RE: Problems upgrading from 3.1.2.stable to 3.3.0.stable - Added by Michael Schaefer over 7 years ago

did you also upgrade your database? there are known issues with mysql:mariadb 5.7

e.g. #17460

RE: Problems upgrading from 3.1.2.stable to 3.3.0.stable - Added by Anonymous over 7 years ago

Hi!

Have a look at: http://www.redmine.org/boards/1/topics/50637?r=50784#message-50784

"Table exists" is a consequence of RoR trying to do object relational mapping during upgrade but table exists from import already due to a plugin from source DB-image. In rare cases a table created previously from a plugin can collide with a new table introduced by the target redmine version.

During my upgrade I openede phpmysql, inspected colliding tables for contents and dropped them. Then restarted db-migrate and so on. So iteratively you eliminate error after error.

Cheers

Immanuel.

RE: Problems upgrading from 3.1.2.stable to 3.3.0.stable - Added by Brendan Pike over 7 years ago

Thanks people, I'm about to have yet another attempt at this upgrade, its about the worst upgrade experience I've ever had I think.

Michael Mohr Schaefer - no I'm still on mysql 5.5.52

Immanuel Immanuel Wilhelmy - thanks, I've first uninstalled my one extra plugin and that didn't help. I've tried manually dropping tables but that only works so far, for example I would of had to drop projects and notes and users, at the point it can no longer be called an upgrade as you've lost all core data.

It seems unthinkable to return to Mantis, but sheesh Mantis never cost me days doing an upgrade.

RE: Problems upgrading from 3.1.2.stable to 3.3.0.stable - Added by Brendan Pike over 7 years ago

Got the same mysql error table 'x' already exists bullshit with 3.3.1. I'm so frustrated with this.

The only option I have is Immanuel suggestion to setup a clean demo installation and then import my data to it prior to migrating the database, but I don't see how this helps, surely it will still run into the same issue. Could you elaborate on this please Immanuel.

Somebody please throw me a bone here.

RE: Problems upgrading from 3.1.2.stable to 3.3.0.stable - Added by James H over 7 years ago

so you are saying that you tried the
insert into schema_migrations values('x')
solution and you ended up with no data?

RE: Problems upgrading from 3.1.2.stable to 3.3.0.stable - Added by Olivier Moreau over 7 years ago

Brendan Pike wrote:

its about the worst upgrade experience I've ever had I think.

Same with me migrating from 3.2.1 to 3.3.1 !
Are we expected to understand Ruby on Rails and raking techniques just for an upgrade ?

RE: Problems upgrading from 3.1.2.stable to 3.3.0.stable - Added by James H over 7 years ago

I only have trouble migrating when I screw the database up with migrations and backups and don't do a good job keeping track of what migrations were performed on said backups, then try to load a backup into a redmine version with unknown migrations already performed on the database.

even then, insert into schema_migrations usually solves this type of issue.

and to me it looks like a classic schema_migrations problem.

RE: Problems upgrading from 3.1.2.stable to 3.3.0.stable - Added by Brendan Pike over 7 years ago

I wish I could say the same James, I just re-attempted the upgrade for the umpteenth time. This time I've at least created the inserts for much quicker re-attempts.
I can confirm that going through the following process ends up in total data loss, and the database is reset to fresh install state, ie. I can login with admin/admin only.

Here is the entire database migration process; sorry for the long post, but I'm desperate for a solution and at a total loss of what to try now.

insert into schema_migrations values('8');
insert into schema_migrations values('9');
insert into schema_migrations values('10');
insert into schema_migrations values('27');
insert into schema_migrations values('28');
insert into schema_migrations values('29');
insert into schema_migrations values('32');
insert into schema_migrations values('34');
insert into schema_migrations values('35');
insert into schema_migrations values('36');
insert into schema_migrations values('39');
insert into schema_migrations values('40');
insert into schema_migrations values('42');
insert into schema_migrations values('45');
insert into schema_migrations values('46');
insert into schema_migrations values('52');
insert into schema_migrations values('53');
insert into schema_migrations values('54');
insert into schema_migrations values('67');
insert into schema_migrations values('68');
insert into schema_migrations values('79');
insert into schema_migrations values('81');
insert into schema_migrations values('82');
insert into schema_migrations values('83');
insert into schema_migrations values('93');
insert into schema_migrations values('95');
insert into schema_migrations values('100');
insert into schema_migrations values('20090214190337');
insert into schema_migrations values('20090312194159');
insert into schema_migrations values('20090503121501');
insert into schema_migrations values('20090704172355');
insert into schema_migrations values('20090704172358');
insert into schema_migrations values('20091017212644');
insert into schema_migrations values('20091017213027');
insert into schema_migrations values('20091017213151');
insert into schema_migrations values('20091017213228');
insert into schema_migrations values('20091017213536');
insert into schema_migrations values('20091017213716');
insert into schema_migrations values('20091017213757');
insert into schema_migrations values('20091017213835');
insert into schema_migrations values('20091017214236');
insert into schema_migrations values('20091017214440');
insert into schema_migrations values('20091017214644');
insert into schema_migrations values('20091017214720');
insert into schema_migrations values('20091025163651');
insert into schema_migrations values('20100221100219');
insert into schema_migrations values('20110902000000');
insert into schema_migrations values('20111201201315');
insert into schema_migrations values('20120731164049');
insert into schema_migrations values('20130602092539');
insert into schema_migrations values('20130713104233');
insert into schema_migrations values('20141122124142');
insert into schema_migrations values('20150113194759');
insert into schema_migrations values('20150113213955');
insert into schema_migrations values('20150528092912');
insert into schema_migrations values('20150528093249');
insert into schema_migrations values('20150730122707');
insert into schema_migrations values('20150730122735');
insert into schema_migrations values('20151025072118');
redmine@s2:/var/www/redmine$ bundle exec rake db:migrate RAILS_ENV=production
== 1 Setup: migrating =========================================================
-- create_table("attachments", {:force=>true})
   -> 0.0099s
-- create_table("auth_sources", {:force=>true})
   -> 0.0070s
-- create_table("custom_fields", {:force=>true})
   -> 0.0056s
-- create_table("custom_fields_projects", {:id=>false, :force=>true})
   -> 0.0055s
-- create_table("custom_fields_trackers", {:id=>false, :force=>true})
   -> 0.0051s
-- create_table("custom_values", {:force=>true})
   -> 0.0056s
-- create_table("documents", {:force=>true})
   -> 0.0052s
-- add_index("documents", ["project_id"], {:name=>"documents_project_id"})
   -> 0.0091s
-- create_table("enumerations", {:force=>true})
   -> 0.0061s
-- create_table("issue_categories", {:force=>true})
   -> 0.0051s
-- add_index("issue_categories", ["project_id"], {:name=>"issue_categories_project_id"})
   -> 0.0089s
-- create_table("issue_histories", {:force=>true})
   -> 0.0045s
-- add_index("issue_histories", ["issue_id"], {:name=>"issue_histories_issue_id"})
   -> 0.0091s
-- create_table("issue_statuses", {:force=>true})
   -> 0.0068s
-- create_table("issues", {:force=>true})
   -> 0.0082s
-- add_index("issues", ["project_id"], {:name=>"issues_project_id"})
   -> 0.0092s
-- create_table("members", {:force=>true})
   -> 0.0066s
-- create_table("news", {:force=>true})
   -> 0.0059s
-- add_index("news", ["project_id"], {:name=>"news_project_id"})
   -> 0.0097s
-- create_table("permissions", {:force=>true})
   -> 0.0057s
-- create_table("permissions_roles", {:id=>false, :force=>true})
   -> 0.0055s
-- add_index("permissions_roles", ["role_id"], {:name=>"permissions_roles_role_id"})
   -> 0.0091s
-- create_table("projects", {:force=>true})
   -> 0.0067s
-- create_table("roles", {:force=>true})
   -> 0.0046s
-- create_table("tokens", {:force=>true})
   -> 0.0048s
-- create_table("trackers", {:force=>true})
   -> 0.0044s
-- create_table("users", {:force=>true})
   -> 0.0068s
-- create_table("versions", {:force=>true})
   -> 0.0052s
-- add_index("versions", ["project_id"], {:name=>"versions_project_id"})
   -> 0.0084s
-- create_table("workflows", {:force=>true})
   -> 0.0058s
== 1 Setup: migrated (0.3895s) ================================================

== 2 IssueMove: migrating =====================================================
== 2 IssueMove: migrated (0.0144s) ============================================

== 3 IssueAddNote: migrating ==================================================
== 3 IssueAddNote: migrated (0.0138s) =========================================

== 4 ExportPdf: migrating =====================================================
== 4 ExportPdf: migrated (0.0176s) ============================================

== 5 IssueStartDate: migrating ================================================
-- add_column(:issues, :start_date, :date)
   -> 0.0077s
-- add_column(:issues, :done_ratio, :integer, {:default=>0, :null=>false})
   -> 0.0074s
== 5 IssueStartDate: migrated (0.0169s) =======================================

== 6 CalendarAndActivity: migrating ===========================================
== 6 CalendarAndActivity: migrated (0.0204s) ==================================

== 7 CreateJournals: migrating ================================================
-- create_table(:journals, {:force=>true})
   -> 0.0090s
-- create_table(:journal_details, {:force=>true})
   -> 0.0049s
-- add_index("journals", ["journalized_id", "journalized_type"], {:name=>"journals_journalized_id"})
   -> 0.0133s
-- add_index("journal_details", ["journal_id"], {:name=>"journal_details_journal_id"})
   -> 0.0097s
-- drop_table(:issue_histories)
   -> 0.0030s
== 7 CreateJournals: migrated (0.1169s) =======================================

== 11 AddNewsCommentsCount: migrating =========================================
-- add_column(:news, :comments_count, :integer, {:default=>0, :null=>false})
   -> 0.0065s
== 11 AddNewsCommentsCount: migrated (0.0067s) ================================

== 12 AddCommentsPermissions: migrating =======================================
== 12 AddCommentsPermissions: migrated (0.0167s) ==============================

== 13 CreateQueries: migrating ================================================
-- create_table(:queries, {:force=>true})
   -> 0.0073s
== 13 CreateQueries: migrated (0.0074s) =======================================

== 14 AddQueriesPermissions: migrating ========================================
== 14 AddQueriesPermissions: migrated (0.0130s) ===============================

== 15 CreateRepositories: migrating ===========================================
-- create_table(:repositories, {:force=>true})
   -> 0.0079s
== 15 CreateRepositories: migrated (0.0081s) ==================================

== 16 AddRepositoriesPermissions: migrating ===================================
== 16 AddRepositoriesPermissions: migrated (0.0298s) ==========================

== 17 CreateSettings: migrating ===============================================
-- create_table(:settings, {:force=>true})
   -> 0.0062s
== 17 CreateSettings: migrated (0.0064s) ======================================

== 18 SetDocAndFilesNotifications: migrating ==================================
== 18 SetDocAndFilesNotifications: migrated (0.0312s) =========================

== 19 AddIssueStatusPosition: migrating =======================================
-- add_column(:issue_statuses, :position, :integer, {:default=>1})
   -> 0.0073s
== 19 AddIssueStatusPosition: migrated (0.0197s) ==============================

== 20 AddRolePosition: migrating ==============================================
-- add_column(:roles, :position, :integer, {:default=>1})
   -> 0.0072s
== 20 AddRolePosition: migrated (0.0361s) =====================================

== 21 AddTrackerPosition: migrating ===========================================
-- add_column(:trackers, :position, :integer, {:default=>1})
   -> 0.0070s
== 21 AddTrackerPosition: migrated (0.0330s) ==================================

== 22 SerializePossiblesValues: migrating =====================================
== 22 SerializePossiblesValues: migrated (0.0023s) ============================

== 23 AddTrackerIsInRoadmap: migrating ========================================
-- add_column(:trackers, :is_in_roadmap, :boolean, {:default=>true, :null=>false})
   -> 0.0112s
== 23 AddTrackerIsInRoadmap: migrated (0.0114s) ===============================

== 24 AddRoadmapPermission: migrating =========================================
== 24 AddRoadmapPermission: migrated (0.0235s) ================================

== 25 AddSearchPermission: migrating ==========================================
== 25 AddSearchPermission: migrated (0.0225s) =================================

== 26 AddRepositoryLoginAndPassword: migrating ================================
-- add_column(:repositories, :login, :string, {:limit=>60, :default=>""})
   -> 0.0155s
-- add_column(:repositories, :password, :string, {:limit=>60, :default=>""})
   -> 0.0107s
== 26 AddRepositoryLoginAndPassword: migrated (0.0268s) =======================

== 30 AddProjectsFeedsPermissions: migrating ==================================
== 30 AddProjectsFeedsPermissions: migrated (0.0173s) =========================

== 31 AddRepositoryRootUrl: migrating =========================================
-- add_column(:repositories, :root_url, :string, {:limit=>255, :default=>""})
   -> 0.0081s
== 31 AddRepositoryRootUrl: migrated (0.0083s) ================================

== 33 AddTimelogPermissions: migrating ========================================
== 33 AddTimelogPermissions: migrated (0.0198s) ===============================

== 37 AddProjectIdentifier: migrating =========================================
-- add_column(:projects, :identifier, :string, {:limit=>20})
   -> 0.0072s
== 37 AddProjectIdentifier: migrated (0.0073s) ================================

== 38 AddCustomFieldIsFilter: migrating =======================================
-- add_column(:custom_fields, :is_filter, :boolean, {:null=>false, :default=>false})
   -> 0.0073s
== 38 AddCustomFieldIsFilter: migrated (0.0075s) ==============================

== 41 RenameCommentToComments: migrating ======================================
== 41 RenameCommentToComments: migrated (0.1949s) =============================

== 43 AddRelationsPermissions: migrating ======================================
== 43 AddRelationsPermissions: migrated (0.0179s) =============================

== 44 SetLanguageLengthToFive: migrating ======================================
-- change_column(:users, :language, :string, {:limit=>5, :default=>""})
   -> 0.0122s
== 44 SetLanguageLengthToFive: migrated (0.0124s) =============================

== 47 AddBoardsPermissions: migrating =========================================
== 47 AddBoardsPermissions: migrated (0.0203s) ================================

== 48 AllowNullVersionEffectiveDate: migrating ================================
-- change_column(:versions, :effective_date, :date, {:default=>nil, :null=>true})
   -> 0.0031s
== 48 AllowNullVersionEffectiveDate: migrated (0.0033s) =======================

== 49 AddWikiDestroyPagePermission: migrating =================================
== 49 AddWikiDestroyPagePermission: migrated (0.0125s) ========================

== 50 AddWikiAttachmentsPermissions: migrating ================================
== 50 AddWikiAttachmentsPermissions: migrated (0.0163s) =======================

== 51 AddProjectStatus: migrating =============================================
-- add_column(:projects, :status, :integer, {:default=>1, :null=>false})
   -> 0.0087s
== 51 AddProjectStatus: migrated (0.0089s) ====================================

== 55 AddRepositoriesType: migrating ==========================================
-- add_column(:repositories, :type, :string)
   -> 0.0071s
== 55 AddRepositoriesType: migrated (0.0082s) =================================

== 56 AddRepositoriesChangesPermission: migrating =============================
== 56 AddRepositoriesChangesPermission: migrated (0.0120s) ====================

== 57 AddVersionsWikiPageTitle: migrating =====================================
-- add_column(:versions, :wiki_page_title, :string)
   -> 0.0071s
== 57 AddVersionsWikiPageTitle: migrated (0.0073s) ============================

== 58 AddIssueCategoriesAssignedToId: migrating ===============================
-- add_column(:issue_categories, :assigned_to_id, :integer)
   -> 0.0077s
== 58 AddIssueCategoriesAssignedToId: migrated (0.0078s) ======================

== 59 AddRolesAssignable: migrating ===========================================
-- add_column(:roles, :assignable, :boolean, {:default=>true})
   -> 0.0072s
== 59 AddRolesAssignable: migrated (0.0074s) ==================================

== 60 ChangeChangesetsCommitterLimit: migrating ===============================
-- change_column(:changesets, :committer, :string, {:limit=>nil})
   -> 0.0035s
== 60 ChangeChangesetsCommitterLimit: migrated (0.0036s) ======================

== 61 AddRolesBuiltin: migrating ==============================================
-- add_column(:roles, :builtin, :integer, {:default=>0, :null=>false})
   -> 0.0070s
== 61 AddRolesBuiltin: migrated (0.0072s) =====================================

== 62 InsertBuiltinRoles: migrating ===========================================
== 62 InsertBuiltinRoles: migrated (0.0813s) ==================================

== 63 AddRolesPermissions: migrating ==========================================
-- add_column(:roles, :permissions, :text)
   -> 0.0078s
== 63 AddRolesPermissions: migrated (0.0080s) =================================

== 64 DropPermissions: migrating ==============================================
-- drop_table(:permissions)
   -> 0.0022s
-- drop_table(:permissions_roles)
   -> 0.0012s
== 64 DropPermissions: migrated (0.0037s) =====================================

== 65 AddSettingsUpdatedOn: migrating =========================================
-- add_column(:settings, :updated_on, :timestamp)
   -> 0.0071s
== 65 AddSettingsUpdatedOn: migrated (0.0330s) ================================

== 66 AddCustomValueCustomizedIndex: migrating ================================
-- add_index(:custom_values, [:customized_type, :customized_id], {:name=>:custom_values_customized})
   -> 0.0108s
== 66 AddCustomValueCustomizedIndex: migrated (0.0110s) =======================

== 69 AddIssuesEstimatedHours: migrating ======================================
-- add_column(:issues, :estimated_hours, :float)
   -> 0.0085s
== 69 AddIssuesEstimatedHours: migrated (0.0086s) =============================

== 70 ChangeAttachmentsContentTypeLimit: migrating ============================
-- change_column(:attachments, :content_type, :string, {:limit=>nil})
   -> 0.0104s
== 70 ChangeAttachmentsContentTypeLimit: migrated (0.0106s) ===================

== 71 AddQueriesColumnNames: migrating ========================================
-- add_column(:queries, :column_names, :text)
   -> 0.0080s
== 71 AddQueriesColumnNames: migrated (0.0082s) ===============================

== 72 AddEnumerationsPosition: migrating ======================================
-- add_column(:enumerations, :position, :integer, {:default=>1})
   -> 0.0080s
== 72 AddEnumerationsPosition: migrated (0.0321s) =============================

== 73 AddEnumerationsIsDefault: migrating =====================================
-- add_column(:enumerations, :is_default, :boolean, {:default=>false, :null=>false})
   -> 0.0076s
== 73 AddEnumerationsIsDefault: migrated (0.0077s) ============================

== 74 AddAuthSourcesTls: migrating ============================================
-- add_column(:auth_sources, :tls, :boolean, {:default=>false, :null=>false})
   -> 0.0072s
== 74 AddAuthSourcesTls: migrated (0.0073s) ===================================

== 75 AddMembersMailNotification: migrating ===================================
-- add_column(:members, :mail_notification, :boolean, {:default=>false, :null=>false})
   -> 0.0071s
== 75 AddMembersMailNotification: migrated (0.0073s) ==========================

== 76 AllowNullPosition: migrating ============================================
-- change_column(:issue_statuses, :position, :integer, {:default=>1, :null=>true})
   -> 0.0037s
-- change_column(:roles, :position, :integer, {:default=>1, :null=>true})
   -> 0.0034s
-- change_column(:trackers, :position, :integer, {:default=>1, :null=>true})
   -> 0.0032s
-- change_column(:boards, :position, :integer, {:default=>1, :null=>true})
   -> 0.0037s
-- change_column(:enumerations, :position, :integer, {:default=>1, :null=>true})
   -> 0.0034s
== 76 AllowNullPosition: migrated (0.0185s) ===================================

== 77 RemoveIssueStatusesHtmlColor: migrating =================================
-- remove_column(:issue_statuses, :html_color)
   -> 0.0063s
== 77 RemoveIssueStatusesHtmlColor: migrated (0.0065s) ========================

== 78 AddCustomFieldsPosition: migrating ======================================
-- add_column(:custom_fields, :position, :integer, {:default=>1})
   -> 0.0074s
== 78 AddCustomFieldsPosition: migrated (0.0086s) =============================

== 80 AddUsersType: migrating =================================================
-- add_column(:users, :type, :string)
   -> 0.0099s
== 80 AddUsersType: migrated (0.0714s) ========================================

== 84 ChangeAuthSourcesAccountLimit: migrating ================================
-- change_column(:auth_sources, :account, :string, {:limit=>nil})
   -> 0.0102s
== 84 ChangeAuthSourcesAccountLimit: migrated (0.0103s) =======================

== 85 AddRoleTrackerOldStatusIndexToWorkflows: migrating ======================
-- add_index(:workflows, [:role_id, :tracker_id, :old_status_id], {:name=>:wkfs_role_tracker_old_status})
   -> 0.0108s
== 85 AddRoleTrackerOldStatusIndexToWorkflows: migrated (0.0110s) =============

== 86 AddCustomFieldsSearchable: migrating ====================================
-- add_column(:custom_fields, :searchable, :boolean, {:default=>false})
   -> 0.0097s
== 86 AddCustomFieldsSearchable: migrated (0.0098s) ===========================

== 87 ChangeProjectsDescriptionToText: migrating ==============================
-- change_column(:projects, :description, :text, {:null=>true, :default=>nil})
   -> 0.0093s
== 87 ChangeProjectsDescriptionToText: migrated (0.0096s) =====================

== 88 AddCustomFieldsDefaultValue: migrating ==================================
-- add_column(:custom_fields, :default_value, :text)
   -> 0.0076s
== 88 AddCustomFieldsDefaultValue: migrated (0.0077s) =========================

== 89 AddAttachmentsDescription: migrating ====================================
-- add_column(:attachments, :description, :string)
   -> 0.0073s
== 89 AddAttachmentsDescription: migrated (0.0074s) ===========================

== 90 ChangeVersionsNameLimit: migrating ======================================
-- change_column(:versions, :name, :string, {:limit=>nil})
   -> 0.0099s
== 90 ChangeVersionsNameLimit: migrated (0.0101s) =============================

== 91 ChangeChangesetsRevisionToString: migrating =============================
-- index_exists?(:changesets, [:repository_id, :revision], {:name=>:changesets_repos_rev})
   -> 0.0009s
-- remove_index(:changesets, {:name=>:changesets_repos_rev})
   -> 0.0076s
-- index_exists?(:changesets, [:repository_id, :revision], {:name=>:altered_changesets_repos_rev})
   -> 0.0008s
-- change_column(:changesets, :revision, :string, {:null=>false})
   -> 0.0038s
-- add_index(:changesets, [:repository_id, :revision], {:unique=>true, :name=>:changesets_repos_rev})
   -> 0.0191s
== 91 ChangeChangesetsRevisionToString: migrated (0.0331s) ====================

== 92 ChangeChangesFromRevisionToString: migrating ============================
-- change_column(:changes, :from_revision, :string)
   -> 0.0042s
== 92 ChangeChangesFromRevisionToString: migrated (0.0044s) ===================

== 94 ChangeProjectsHomepageLimit: migrating ==================================
-- change_column(:projects, :homepage, :string, {:limit=>nil, :default=>""})
   -> 0.0090s
== 94 ChangeProjectsHomepageLimit: migrated (0.0092s) =========================

== 96 AddCommitAccessPermission: migrating ====================================
== 96 AddCommitAccessPermission: migrated (0.0011s) ===========================

== 97 AddViewWikiEditsPermission: migrating ===================================
== 97 AddViewWikiEditsPermission: migrated (0.0009s) ==========================

== 98 SetTopicAuthorsAsWatchers: migrating ====================================
== 98 SetTopicAuthorsAsWatchers: migrated (0.0406s) ===========================

== 99 AddDeleteWikiPagesAttachmentsPermission: migrating ======================
== 99 AddDeleteWikiPagesAttachmentsPermission: migrated (0.0008s) =============

== 101 PopulateChangesetsUserId: migrating ====================================
== 101 PopulateChangesetsUserId: migrated (0.0273s) ===========================

== 102 AddCustomFieldsEditable: migrating =====================================
-- add_column(:custom_fields, :editable, :boolean, {:default=>true})
   -> 0.0084s
== 102 AddCustomFieldsEditable: migrated (0.0087s) ============================

== 103 SetCustomFieldsEditable: migrating =====================================
== 103 SetCustomFieldsEditable: migrated (0.0033s) ============================

== 104 AddProjectsLftAndRgt: migrating ========================================
-- add_column(:projects, :lft, :integer)
   -> 0.0085s
-- add_column(:projects, :rgt, :integer)
   -> 0.0082s
== 104 AddProjectsLftAndRgt: migrated (0.0171s) ===============================

== 105 BuildProjectsTree: migrating ===========================================
== 105 BuildProjectsTree: migrated (0.0057s) ==================================

== 106 RemoveProjectsProjectsCount: migrating =================================
-- remove_column(:projects, :projects_count)
   -> 0.0073s
== 106 RemoveProjectsProjectsCount: migrated (0.0075s) ========================

== 107 AddOpenIdAuthenticationTables: migrating ===============================
-- create_table(:open_id_authentication_associations, {:force=>true})
   -> 0.0072s
-- create_table(:open_id_authentication_nonces, {:force=>true})
   -> 0.0064s
== 107 AddOpenIdAuthenticationTables: migrated (0.0139s) ======================

== 108 AddIdentityUrlToUsers: migrating =======================================
-- add_column(:users, :identity_url, :string)
   -> 0.0062s
== 108 AddIdentityUrlToUsers: migrated (0.0064s) ==============================

== 20090312172426 AddQueriesSortCriteria: migrating ===========================
-- add_column(:queries, :sort_criteria, :text)
   -> 0.0065s
== 20090312172426 AddQueriesSortCriteria: migrated (0.0067s) ==================

== 20090318181151 ExtendSettingsName: migrating ===============================
-- change_column(:settings, :name, :string, {:limit=>255, :default=>"", :null=>false})
   -> 0.0058s
== 20090318181151 ExtendSettingsName: migrated (0.0061s) ======================

== 20090323224724 AddTypeToEnumerations: migrating ============================
-- add_column(:enumerations, :type, :string)
   -> 0.0073s
== 20090323224724 AddTypeToEnumerations: migrated (0.0075s) ===================

== 20090401221305 UpdateEnumerationsToSti: migrating ==========================
== 20090401221305 UpdateEnumerationsToSti: migrated (0.0026s) =================

== 20090401231134 AddActiveFieldToEnumerations: migrating =====================
-- add_column(:enumerations, :active, :boolean, {:default=>true, :null=>false})
   -> 0.0067s
== 20090401231134 AddActiveFieldToEnumerations: migrated (0.0069s) ============

== 20090403001910 AddProjectToEnumerations: migrating =========================
-- add_column(:enumerations, :project_id, :integer, {:null=>true, :default=>nil})
   -> 0.0054s
-- add_index(:enumerations, :project_id)
   -> 0.0096s
== 20090403001910 AddProjectToEnumerations: migrated (0.0154s) ================

== 20090406161854 AddParentIdToEnumerations: migrating ========================
-- add_column(:enumerations, :parent_id, :integer, {:null=>true, :default=>nil})
   -> 0.0064s
== 20090406161854 AddParentIdToEnumerations: migrated (0.0066s) ===============

== 20090425161243 AddQueriesGroupBy: migrating ================================
-- add_column(:queries, :group_by, :string)
   -> 0.0079s
== 20090425161243 AddQueriesGroupBy: migrated (0.0080s) =======================

== 20090503121505 PopulateMemberRoles: migrating ==============================
== 20090503121505 PopulateMemberRoles: migrated (0.0213s) =====================

== 20090503121510 DropMembersRoleId: migrating ================================
-- remove_column(:members, :role_id)
   -> 0.0071s
== 20090503121510 DropMembersRoleId: migrated (0.0073s) =======================

== 20090614091200 FixMessagesStickyNull: migrating ============================
== 20090614091200 FixMessagesStickyNull: migrated (0.0008s) ===================

== 20090704172350 PopulateUsersType: migrating ================================
== 20090704172350 PopulateUsersType: migrated (0.0009s) =======================

== 20091010093521 FixUsersCustomValues: migrating =============================
== 20091010093521 FixUsersCustomValues: migrated (0.0045s) ====================

== 20091017212227 AddMissingIndexesToWorkflows: migrating =====================
-- add_index(:workflows, :old_status_id)
   -> 0.0102s
-- add_index(:workflows, :role_id)
   -> 0.0102s
-- add_index(:workflows, :new_status_id)
   -> 0.0102s
== 20091017212227 AddMissingIndexesToWorkflows: migrated (0.0310s) ============

== 20091017212457 AddMissingIndexesToCustomFieldsProjects: migrating ==========
-- add_index(:custom_fields_projects, [:custom_field_id, :project_id])
   -> 0.0290s
== 20091017212457 AddMissingIndexesToCustomFieldsProjects: migrated (0.0291s) =

== 20091017212938 AddMissingIndexesToRepositories: migrating ==================
-- add_index(:repositories, :project_id)
   -> 0.0123s
== 20091017212938 AddMissingIndexesToRepositories: migrated (0.0125s) =========

== 20091017213113 AddMissingIndexesToEnumerations: migrating ==================
-- add_index(:enumerations, [:id, :type])
   -> 0.0124s
== 20091017213113 AddMissingIndexesToEnumerations: migrated (0.0125s) =========

== 20091017213257 AddMissingIndexesToAuthSources: migrating ===================
-- add_index(:auth_sources, [:id, :type])
   -> 0.0117s
== 20091017213257 AddMissingIndexesToAuthSources: migrated (0.0118s) ==========

== 20091017213332 AddMissingIndexesToDocuments: migrating =====================
-- add_index(:documents, :category_id)
   -> 0.0104s
== 20091017213332 AddMissingIndexesToDocuments: migrated (0.0105s) ============

== 20091017213444 AddMissingIndexesToTokens: migrating ========================
-- add_index(:tokens, :user_id)
   -> 0.0093s
== 20091017213444 AddMissingIndexesToTokens: migrated (0.0094s) ===============

== 20091017213642 AddMissingIndexesToIssueCategories: migrating ===============
-- add_index(:issue_categories, :assigned_to_id)
   -> 0.0094s
== 20091017213642 AddMissingIndexesToIssueCategories: migrated (0.0095s) ======

== 20091017213910 AddMissingIndexesToIssues: migrating ========================
-- add_index(:issues, :status_id)
   -> 0.0208s
-- add_index(:issues, :category_id)
   -> 0.0114s
-- add_index(:issues, :assigned_to_id)
   -> 0.0113s
-- add_index(:issues, :fixed_version_id)
   -> 0.0110s
-- add_index(:issues, :tracker_id)
   -> 0.0099s
-- add_index(:issues, :priority_id)
   -> 0.0105s
-- add_index(:issues, :author_id)
   -> 0.0099s
== 20091017213910 AddMissingIndexesToIssues: migrated (0.0852s) ===============

== 20091017214015 AddMissingIndexesToMembers: migrating =======================
-- add_index(:members, :user_id)
   -> 0.0092s
-- add_index(:members, :project_id)
   -> 0.0091s
== 20091017214015 AddMissingIndexesToMembers: migrated (0.0185s) ==============

== 20091017214107 AddMissingIndexesToCustomFields: migrating ==================
-- add_index(:custom_fields, [:id, :type])
   -> 0.0106s
== 20091017214107 AddMissingIndexesToCustomFields: migrated (0.0107s) =========

== 20091017214136 AddMissingIndexesToQueries: migrating =======================
-- add_index(:queries, :project_id)
   -> 0.0116s
-- add_index(:queries, :user_id)
   -> 0.0108s
== 20091017214136 AddMissingIndexesToQueries: migrated (0.0226s) ==============

== 20091017214308 AddMissingIndexesToNews: migrating ==========================
-- add_index(:news, :author_id)
   -> 0.0109s
== 20091017214308 AddMissingIndexesToNews: migrated (0.0110s) =================

== 20091017214336 AddMissingIndexesToUsers: migrating =========================
-- add_index(:users, [:id, :type])
   -> 0.0109s
-- add_index(:users, :auth_source_id)
   -> 0.0098s
== 20091017214336 AddMissingIndexesToUsers: migrated (0.0209s) ================

== 20091017214406 AddMissingIndexesToAttachments: migrating ===================
-- add_index(:attachments, [:container_id, :container_type])
   -> 0.0101s
-- add_index(:attachments, :author_id)
   -> 0.0105s
== 20091017214406 AddMissingIndexesToAttachments: migrated (0.0208s) ==========

== 20091017214519 AddMissingIndexesToCustomValues: migrating ==================
-- add_index(:custom_values, :custom_field_id)
   -> 0.0321s
== 20091017214519 AddMissingIndexesToCustomValues: migrated (0.0322s) =========

== 20091017214611 AddMissingIndexesToJournals: migrating ======================
-- add_index(:journals, :user_id)
   -> 0.0099s
-- add_index(:journals, :journalized_id)
   -> 0.0093s
== 20091017214611 AddMissingIndexesToJournals: migrated (0.0194s) =============

== 20091017214750 AddMissingIndexesToCustomFieldsTrackers: migrating ==========
-- add_index(:custom_fields_trackers, [:custom_field_id, :tracker_id])
   -> 0.0095s
== 20091017214750 AddMissingIndexesToCustomFieldsTrackers: migrated (0.0096s) =

== 20091108092559 AddVersionsStatus: migrating ================================
-- add_column(:versions, :status, :string, {:default=>"open"})
   -> 0.0063s
== 20091108092559 AddVersionsStatus: migrated (0.0224s) =======================

== 20091114105931 AddViewIssuesPermission: migrating ==========================
== 20091114105931 AddViewIssuesPermission: migrated (0.0237s) =================

== 20091123212029 AddDefaultDoneRatioToIssueStatus: migrating =================
-- add_column(:issue_statuses, :default_done_ratio, :integer)
   -> 0.0066s
== 20091123212029 AddDefaultDoneRatioToIssueStatus: migrated (0.0067s) ========

== 20091205124427 AddVersionsSharing: migrating ===============================
-- add_column(:versions, :sharing, :string, {:default=>"none", :null=>false})
   -> 0.0062s
-- add_index(:versions, :sharing)
   -> 0.0104s
== 20091205124427 AddVersionsSharing: migrated (0.0169s) ======================

== 20091220183509 AddLftAndRgtIndexesToProjects: migrating ====================
-- add_index(:projects, :lft)
   -> 0.0095s
-- add_index(:projects, :rgt)
   -> 0.0250s
== 20091220183509 AddLftAndRgtIndexesToProjects: migrated (0.0348s) ===========

== 20091220183727 AddIndexToSettingsName: migrating ===========================
-- add_index(:settings, :name)
   -> 0.0108s
== 20091220183727 AddIndexToSettingsName: migrated (0.0109s) ==================

== 20091220184736 AddIndexesToIssueStatus: migrating ==========================
-- add_index(:issue_statuses, :position)
   -> 0.0103s
-- add_index(:issue_statuses, :is_closed)
   -> 0.0110s
-- add_index(:issue_statuses, :is_default)
   -> 0.0097s
== 20091220184736 AddIndexesToIssueStatus: migrated (0.0312s) =================

== 20091225164732 RemoveEnumerationsOpt: migrating ============================
-- remove_column(:enumerations, :opt)
   -> 0.0066s
== 20091225164732 RemoveEnumerationsOpt: migrated (0.0067s) ===================

== 20091227112908 ChangeWikiContentsTextLimit: migrating ======================
-- change_column(:wiki_contents, :text, :text, {:limit=>16777216})
   -> 0.0034s
-- change_column(:wiki_content_versions, :data, :binary, {:limit=>16777216})
   -> 0.0101s
== 20091227112908 ChangeWikiContentsTextLimit: migrated (0.0139s) =============

== 20100129193402 ChangeUsersMailNotificationToString: migrating ==============
-- rename_column(:users, :mail_notification, :mail_notification_bool)
   -> 0.0120s
-- add_column(:users, :mail_notification, :string, {:default=>"", :null=>false})
   -> 0.0075s
-- remove_column(:users, :mail_notification_bool)
   -> 0.0074s
== 20100129193402 ChangeUsersMailNotificationToString: migrated (0.0306s) =====

== 20100129193813 UpdateMailNotificationValues: migrating =====================
== 20100129193813 UpdateMailNotificationValues: migrated (0.0000s) ============

== 20100313132032 AddIssuesNestedSetsColumns: migrating =======================
-- add_column(:issues, :parent_id, :integer, {:default=>nil})
   -> 0.0091s
-- add_column(:issues, :root_id, :integer, {:default=>nil})
   -> 0.0082s
-- add_column(:issues, :lft, :integer, {:default=>nil})
   -> 0.0088s
-- add_column(:issues, :rgt, :integer, {:default=>nil})
   -> 0.0075s
== 20100313132032 AddIssuesNestedSetsColumns: migrated (0.1709s) ==============

== 20100313171051 AddIndexOnIssuesNestedSet: migrating ========================
-- add_index(:issues, [:root_id, :lft, :rgt])
   -> 0.0107s
== 20100313171051 AddIndexOnIssuesNestedSet: migrated (0.0111s) ===============

== 20100705164950 ChangeChangesPathLengthLimit: migrating =====================
-- change_column(:changes, :path, :text, {:default=>nil, :null=>true})
   -> 0.1782s
-- change_column(:changes, :path, :text, {:null=>false})
   -> 0.1806s
-- change_column(:changes, :from_path, :text)
   -> 0.0054s
== 20100705164950 ChangeChangesPathLengthLimit: migrated (0.3647s) ============

== 20100819172912 EnableCalendarAndGanttModulesWhereAppropriate: migrating ====
== 20100819172912 EnableCalendarAndGanttModulesWhereAppropriate: migrated (0.2155s) 

== 20101104182107 AddUniqueIndexOnMembers: migrating ==========================
-- add_index(:members, [:user_id, :project_id], {:unique=>true})
   -> 0.0109s
== 20101104182107 AddUniqueIndexOnMembers: migrated (0.0134s) =================

== 20101107130441 AddCustomFieldsVisible: migrating ===========================
-- add_column(:custom_fields, :visible, :boolean, {:null=>false, :default=>true})
   -> 0.0064s
== 20101107130441 AddCustomFieldsVisible: migrated (0.0076s) ==================

== 20101114115114 ChangeProjectsNameLimit: migrating ==========================
-- change_column(:projects, :name, :string, {:limit=>nil, :default=>"", :null=>false})
   -> 0.0081s
== 20101114115114 ChangeProjectsNameLimit: migrated (0.0086s) =================

== 20101114115359 ChangeProjectsIdentifierLimit: migrating ====================
-- change_column(:projects, :identifier, :string, {:limit=>nil})
   -> 0.0079s
== 20101114115359 ChangeProjectsIdentifierLimit: migrated (0.0084s) ===========

== 20110220160626 AddWorkflowsAssigneeAndAuthor: migrating ====================
-- add_column(:workflows, :assignee, :boolean, {:null=>false, :default=>false})
   -> 0.0062s
-- add_column(:workflows, :author, :boolean, {:null=>false, :default=>false})
   -> 0.0054s
== 20110220160626 AddWorkflowsAssigneeAndAuthor: migrated (0.0208s) ===========

== 20110223180944 AddUsersSalt: migrating =====================================
-- add_column(:users, :salt, :string, {:limit=>64})
   -> 0.0069s
== 20110223180944 AddUsersSalt: migrated (0.0074s) ============================

== 20110223180953 SaltUserPasswords: migrating ================================
-- Salting user passwords, this may take some time...
   -> 0.0349s
== 20110223180953 SaltUserPasswords: migrated (0.0354s) =======================

== 20110224000000 AddRepositoriesPathEncoding: migrating ======================
-- add_column(:repositories, :path_encoding, :string, {:limit=>64, :default=>nil})
   -> 0.0063s
== 20110224000000 AddRepositoriesPathEncoding: migrated (0.0067s) =============

== 20110226120112 ChangeRepositoriesPasswordLimit: migrating ==================
-- change_column(:repositories, :password, :string, {:limit=>nil, :default=>""})
   -> 0.0066s
== 20110226120112 ChangeRepositoriesPasswordLimit: migrated (0.0071s) =========

== 20110226120132 ChangeAuthSourcesAccountPasswordLimit: migrating ============
-- change_column(:auth_sources, :account_password, :string, {:limit=>nil, :default=>""})
   -> 0.0072s
== 20110226120132 ChangeAuthSourcesAccountPasswordLimit: migrated (0.0077s) ===

== 20110227125750 ChangeJournalDetailsValuesToText: migrating =================
-- change_column(:journal_details, :old_value, :text)
   -> 0.0236s
-- change_column(:journal_details, :value, :text)
   -> 0.0486s
== 20110227125750 ChangeJournalDetailsValuesToText: migrated (0.0726s) ========

== 20110228000000 AddRepositoriesLogEncoding: migrating =======================
-- add_column(:repositories, :log_encoding, :string, {:limit=>64, :default=>nil})
   -> 0.0063s
== 20110228000000 AddRepositoriesLogEncoding: migrated (0.0067s) ==============

== 20110228000100 CopyRepositoriesLogEncoding: migrating ======================
== 20110228000100 CopyRepositoriesLogEncoding: migrated (0.0075s) =============

== 20110401192910 AddIndexToUsersType: migrating ==============================
-- add_index(:users, :type)
   -> 0.0262s
== 20110401192910 AddIndexToUsersType: migrated (0.0266s) =====================

== 20110408103312 AddRolesIssuesVisibility: migrating =========================
-- add_column(:roles, :issues_visibility, :string, {:limit=>30, :default=>"default", :null=>false})
   -> 0.0093s
== 20110408103312 AddRolesIssuesVisibility: migrated (0.0097s) ================

== 20110412065600 AddIssuesIsPrivate: migrating ===============================
-- add_column(:issues, :is_private, :boolean, {:default=>false, :null=>false})
   -> 0.0084s
== 20110412065600 AddIssuesIsPrivate: migrated (0.0089s) ======================

== 20110511000000 AddRepositoriesExtraInfo: migrating =========================
-- add_column(:repositories, :extra_info, :text)
   -> 0.0091s
== 20110511000000 AddRepositoriesExtraInfo: migrated (0.0095s) ================

== 20120115143024 AddRepositoriesIdentifier: migrating ========================
-- add_column(:repositories, :identifier, :string)
   -> 0.0078s
== 20120115143024 AddRepositoriesIdentifier: migrated (0.0082s) ===============

== 20120115143100 AddRepositoriesIsDefault: migrating =========================
-- add_column(:repositories, :is_default, :boolean, {:default=>false})
   -> 0.0093s
== 20120115143100 AddRepositoriesIsDefault: migrated (0.0097s) ================

== 20120115143126 SetDefaultRepositories: migrating ===========================
== 20120115143126 SetDefaultRepositories: migrated (0.0012s) ==================

== 20120127174243 AddCustomFieldsMultiple: migrating ==========================
-- add_column(:custom_fields, :multiple, :boolean, {:default=>false})
   -> 0.0086s
== 20120127174243 AddCustomFieldsMultiple: migrated (0.0091s) =================

== 20120205111326 ChangeUsersLoginLimit: migrating ============================
-- change_column(:users, :login, :string, {:limit=>nil, :default=>"", :null=>false})
   -> 0.0107s
== 20120205111326 ChangeUsersLoginLimit: migrated (0.0112s) ===================

== 20120223110929 ChangeAttachmentsContainerDefaults: migrating ===============
-- remove_index(:attachments, [:container_id, :container_type])
   -> 0.0068s
-- change_column(:attachments, :container_id, :integer, {:default=>nil, :null=>true})
   -> 0.0088s
-- change_column(:attachments, :container_type, :string, {:limit=>30, :default=>nil, :null=>true})
   -> 0.0088s
-- add_index(:attachments, [:container_id, :container_type])
   -> 0.0101s
== 20120223110929 ChangeAttachmentsContainerDefaults: migrated (0.0622s) ======

== 20120301153455 AddAuthSourcesFilter: migrating =============================
-- add_column(:auth_sources, :filter, :string)
   -> 0.0054s
== 20120301153455 AddAuthSourcesFilter: migrated (0.0058s) ====================

== 20120422150750 ChangeRepositoriesToFullSti: migrating ======================
== 20120422150750 ChangeRepositoriesToFullSti: migrated (0.0005s) =============

== 20120705074331 AddTrackersFieldsBits: migrating ============================
-- add_column(:trackers, :fields_bits, :integer, {:default=>0})
   -> 0.0062s
== 20120705074331 AddTrackersFieldsBits: migrated (0.0066s) ===================

== 20120707064544 AddAuthSourcesTimeout: migrating ============================
-- add_column(:auth_sources, :timeout, :integer)
   -> 0.0051s
== 20120707064544 AddAuthSourcesTimeout: migrated (0.0055s) ===================

== 20120714122000 AddWorkflowsType: migrating =================================
-- add_column(:workflows, :type, :string, {:limit=>30})
   -> 0.0061s
== 20120714122000 AddWorkflowsType: migrated (0.0065s) ========================

== 20120714122100 UpdateWorkflowsToSti: migrating =============================
== 20120714122100 UpdateWorkflowsToSti: migrated (0.0008s) ====================

== 20120714122200 AddWorkflowsRuleFields: migrating ===========================
-- add_column(:workflows, :field_name, :string, {:limit=>30})
   -> 0.0056s
-- add_column(:workflows, :rule, :string, {:limit=>30})
   -> 0.0052s
== 20120714122200 AddWorkflowsRuleFields: migrated (0.0116s) ==================

== 20120930112914 AddJournalsPrivateNotes: migrating ==========================
-- add_column(:journals, :private_notes, :boolean, {:default=>false, :null=>false})
   -> 0.0055s
== 20120930112914 AddJournalsPrivateNotes: migrated (0.0060s) =================

== 20121026002032 AddEnumerationsPositionName: migrating ======================
-- add_column(:enumerations, :position_name, :string, {:limit=>30})
   -> 0.0049s
== 20121026002032 AddEnumerationsPositionName: migrated (0.0054s) =============

== 20121026003537 PopulateEnumerationsPositionName: migrating =================
== 20121026003537 PopulateEnumerationsPositionName: migrated (0.0044s) ========

== 20121209123234 AddQueriesType: migrating ===================================
-- add_column(:queries, :type, :string)
   -> 0.0062s
== 20121209123234 AddQueriesType: migrated (0.0066s) ==========================

== 20121209123358 UpdateQueriesToSti: migrating ===============================
== 20121209123358 UpdateQueriesToSti: migrated (0.0227s) ======================

== 20121213084931 AddAttachmentsDiskDirectory: migrating ======================
-- add_column(:attachments, :disk_directory, :string)
   -> 0.0084s
== 20121213084931 AddAttachmentsDiskDirectory: migrated (0.0087s) =============

== 20130110122628 SplitDocumentsPermissions: migrating ========================
== 20130110122628 SplitDocumentsPermissions: migrated (0.0013s) ===============

== 20130201184705 AddUniqueIndexOnTokensValue: migrating ======================
-- Adding unique index on tokens, this may take some time...
-- add_index(:tokens, :value, {:unique=>true, :name=>"tokens_value"})
   -> 0.0108s
   -> 0.0167s
== 20130201184705 AddUniqueIndexOnTokensValue: migrated (0.0170s) =============

== 20130202090625 AddProjectsInheritMembers: migrating ========================
-- add_column(:projects, :inherit_members, :boolean, {:default=>false, :null=>false})
   -> 0.0054s
== 20130202090625 AddProjectsInheritMembers: migrated (0.0059s) ===============

== 20130207175206 AddUniqueIndexOnCustomFieldsTrackers: migrating =============
-- index_exists?(:custom_fields_trackers, [:custom_field_id, :tracker_id])
   -> 0.0005s
-- remove_index(:custom_fields_trackers, [:custom_field_id, :tracker_id])
   -> 0.0047s
-- add_index(:custom_fields_trackers, [:custom_field_id, :tracker_id], {:unique=>true})
   -> 0.0095s
== 20130207175206 AddUniqueIndexOnCustomFieldsTrackers: migrated (0.0166s) ====

== 20130207181455 AddUniqueIndexOnCustomFieldsProjects: migrating =============
-- index_exists?(:custom_fields_projects, [:custom_field_id, :project_id])
   -> 0.0005s
-- remove_index(:custom_fields_projects, [:custom_field_id, :project_id])
   -> 0.0050s
-- add_index(:custom_fields_projects, [:custom_field_id, :project_id], {:unique=>true})
   -> 0.0092s
== 20130207181455 AddUniqueIndexOnCustomFieldsProjects: migrated (0.0164s) ====

== 20130215073721 ChangeUsersLastnameLengthTo255: migrating ===================
-- change_column(:users, :lastname, :string, {:limit=>255, :default=>"", :null=>false})
   -> 0.0096s
== 20130215073721 ChangeUsersLastnameLengthTo255: migrated (0.0099s) ==========

== 20130215111127 AddIssuesClosedOn: migrating ================================
-- add_column(:issues, :closed_on, :datetime, {:default=>nil})
   -> 0.0366s
== 20130215111127 AddIssuesClosedOn: migrated (0.0368s) =======================

== 20130215111141 PopulateIssuesClosedOn: migrating ===========================
== 20130215111141 PopulateIssuesClosedOn: migrated (0.0017s) ==================

== 20130217094251 RemoveIssuesDefaultFkValues: migrating ======================
-- change_column_default(:issues, :tracker_id, nil)
   -> 0.0057s
-- change_column_default(:issues, :project_id, nil)
   -> 0.0052s
-- change_column_default(:issues, :status_id, nil)
   -> 0.0055s
-- change_column_default(:issues, :assigned_to_id, nil)
   -> 0.0055s
-- change_column_default(:issues, :priority_id, nil)
   -> 0.0053s
-- change_column_default(:issues, :author_id, nil)
   -> 0.0056s
== 20130217094251 RemoveIssuesDefaultFkValues: migrated (0.0352s) =============

== 20130710182539 AddQueriesVisibility: migrating =============================
-- add_column(:queries, :visibility, :integer, {:default=>0})
   -> 0.0358s
-- remove_column(:queries, :is_public)
   -> 0.0067s
== 20130710182539 AddQueriesVisibility: migrated (0.0444s) ====================

== 20130713111657 AddQueriesOptions: migrating ================================
-- add_column(:queries, :options, :text)
   -> 0.0063s
== 20130713111657 AddQueriesOptions: migrated (0.0064s) =======================

== 20130729070143 AddUsersMustChangePasswd: migrating =========================
-- add_column(:users, :must_change_passwd, :boolean, {:default=>false, :null=>false})
   -> 0.0301s
== 20130729070143 AddUsersMustChangePasswd: migrated (0.0302s) ================

== 20130911193200 RemoveEolsFromAttachmentsFilename: migrating ================
== 20130911193200 RemoveEolsFromAttachmentsFilename: migrated (0.0028s) =======

== 20131004113137 SupportForMultipleCommitKeywords: migrating =================
== 20131004113137 SupportForMultipleCommitKeywords: migrated (0.0038s) ========

== 20131005100610 AddRepositoriesCreatedOn: migrating =========================
-- add_column(:repositories, :created_on, :timestamp)
   -> 0.0064s
== 20131005100610 AddRepositoriesCreatedOn: migrated (0.0068s) ================

== 20131124175346 AddCustomFieldsFormatStore: migrating =======================
-- add_column(:custom_fields, :format_store, :text)
   -> 0.0056s
== 20131124175346 AddCustomFieldsFormatStore: migrated (0.0060s) ==============

== 20131210180802 AddCustomFieldsDescription: migrating =======================
-- add_column(:custom_fields, :description, :text)
   -> 0.0060s
== 20131210180802 AddCustomFieldsDescription: migrated (0.0064s) ==============

== 20131214094309 RemoveCustomFieldsMinMaxLengthDefaultValues: migrating ======
-- change_column(:custom_fields, :min_length, :int, {:default=>nil, :null=>true})
   -> 0.0086s
-- change_column(:custom_fields, :max_length, :int, {:default=>nil, :null=>true})
   -> 0.0083s
== 20131214094309 RemoveCustomFieldsMinMaxLengthDefaultValues: migrated (0.0195s) 

== 20131215104612 StoreRelationTypeInJournalDetails: migrating ================
== 20131215104612 StoreRelationTypeInJournalDetails: migrated (0.0112s) =======

== 20131218183023 DeleteOrphanTimeEntriesCustomValues: migrating ==============
== 20131218183023 DeleteOrphanTimeEntriesCustomValues: migrated (0.0008s) =====

== 20140228130325 ChangeChangesetsCommentsLimit: migrating ====================
-- change_column(:changesets, :comments, :text, {:limit=>16777216})
   -> 0.0033s
== 20140228130325 ChangeChangesetsCommentsLimit: migrated (0.0038s) ===========

== 20140903143914 AddPasswordChangedAtToUser: migrating =======================
-- add_column(:users, :passwd_changed_on, :datetime)
   -> 0.0069s
== 20140903143914 AddPasswordChangedAtToUser: migrated (0.0073s) ==============

== 20140920094058 InsertBuiltinGroups: migrating ==============================
== 20140920094058 InsertBuiltinGroups: migrated (0.1141s) =====================

== 20141029181752 AddTrackersDefaultStatusId: migrating =======================
-- add_column(:trackers, :default_status_id, :integer)
   -> 0.0071s
== 20141029181752 AddTrackersDefaultStatusId: migrated (0.0092s) ==============

== 20141029181824 RemoveIssueStatusesIsDefault: migrating =====================
-- remove_column(:issue_statuses, :is_default)
   -> 0.0093s
== 20141029181824 RemoveIssueStatusesIsDefault: migrated (0.0098s) ============

== 20141109112308 AddRolesUsersVisibility: migrating ==========================
-- add_column(:roles, :users_visibility, :string, {:limit=>30, :default=>"all", :null=>false})
   -> 0.0078s
== 20141109112308 AddRolesUsersVisibility: migrated (0.0083s) =================

== 20150113211532 PopulateEmailAddresses: migrating ===========================
== 20150113211532 PopulateEmailAddresses: migrated (0.0025s) ==================

== 20150113213922 RemoveUsersMail: migrating ==================================
-- remove_column(:users, :mail)
   -> 0.0388s
== 20150113213922 RemoveUsersMail: migrated (0.0391s) =========================

== 20150208105930 ReplaceMoveIssuesPermission: migrating ======================
== 20150208105930 ReplaceMoveIssuesPermission: migrated (0.0015s) =============

== 20150510083747 ChangeDocumentsTitleLimit: migrating ========================
-- change_column(:documents, :title, :string, {:limit=>nil, :default=>"", :null=>false})
   -> 0.0081s
== 20150510083747 ChangeDocumentsTitleLimit: migrated (0.0084s) ===============

== 20150525103953 ClearEstimatedHoursOnParentIssues: migrating ================
== 20150525103953 ClearEstimatedHoursOnParentIssues: migrated (0.0034s) =======

== 20150526183158 AddRolesTimeEntriesVisibility: migrating ====================
-- add_column(:roles, :time_entries_visibility, :string, {:limit=>30, :default=>"all", :null=>false})
   -> 0.0072s
== 20150526183158 AddRolesTimeEntriesVisibility: migrated (0.0076s) ===========

== 20150528084820 AddRolesAllRolesManaged: migrating ==========================
-- add_column(:roles, :all_roles_managed, :boolean, {:default=>true, :null=>false})
   -> 0.0069s
== 20150528084820 AddRolesAllRolesManaged: migrated (0.0073s) =================

== 20150725112753 InsertAllowedStatusesForNewIssues: migrating ================
== 20150725112753 InsertAllowedStatusesForNewIssues: migrated (0.0037s) =======

== 20150921204850 ChangeTimeEntriesCommentsLimitTo1024: migrating =============
-- change_column(:time_entries, :comments, :string, {:limit=>1024})
   -> 0.0105s
== 20150921204850 ChangeTimeEntriesCommentsLimitTo1024: migrated (0.0109s) ====

== 20150921210243 ChangeWikiContentsCommentsLimitTo1024: migrating ============
-- change_column(:wiki_content_versions, :comments, :string, {:limit=>1024, :default=>""})
   -> 0.0080s
-- change_column(:wiki_contents, :comments, :string, {:limit=>1024, :default=>""})
   -> 0.0076s
== 20150921210243 ChangeWikiContentsCommentsLimitTo1024: migrated (0.0163s) ===

== 20151020182334 ChangeAttachmentsFilesizeLimitTo8: migrating ================
-- change_column(:attachments, :filesize, :integer, {:limit=>8, :default=>0, :null=>false})
   -> 0.0068s
== 20151020182334 ChangeAttachmentsFilesizeLimitTo8: migrated (0.0072s) =======

== 20151020182731 FixCommaInUserFormatSettingValue: migrating =================
== 20151020182731 FixCommaInUserFormatSettingValue: migrated (0.0011s) ========

== 20151021184614 ChangeIssueCategoriesNameLimitTo60: migrating ===============
-- change_column(:issue_categories, :name, :string, {:limit=>60, :default=>"", :null=>false})
   -> 0.0067s
== 20151021184614 ChangeIssueCategoriesNameLimitTo60: migrated (0.0071s) ======

== 20151021185456 ChangeAuthSourcesFilterToText: migrating ====================
-- change_column(:auth_sources, :filter, :text)
   -> 0.0070s
== 20151021185456 ChangeAuthSourcesFilterToText: migrated (0.0073s) ===========

== 20151021190616 ChangeUserPreferencesHideMailDefaultToTrue: migrating =======
-- change_column(:user_preferences, :hide_mail, :boolean, {:default=>true})
   -> 0.0030s
== 20151021190616 ChangeUserPreferencesHideMailDefaultToTrue: migrated (0.0034s) 

== 20151024082034 AddTokensUpdatedOn: migrating ===============================
-- add_column(:tokens, :updated_on, :timestamp)
   -> 0.0049s
== 20151024082034 AddTokensUpdatedOn: migrated (0.0060s) ======================

== 20151031095005 AddProjectsDefaultVersionId: migrating ======================
-- column_exists?(:projects, :default_version_id, :integer)
   -> 0.0013s
-- add_column(:projects, :default_version_id, :integer, {:default=>nil})
   -> 0.0057s
== 20151031095005 AddProjectsDefaultVersionId: migrated (0.0077s) =============

== 20160404080304 ForcePasswordResetDuringSetup: migrating ====================
== 20160404080304 ForcePasswordResetDuringSetup: migrated (0.0024s) ===========

== 20160416072926 RemovePositionDefaults: migrating ===========================
-- change_column("boards", :position, :integer, {:default=>nil})
   -> 0.0029s
-- change_column("custom_fields", :position, :integer, {:default=>nil})
   -> 0.0034s
-- change_column("enumerations", :position, :integer, {:default=>nil})
   -> 0.0029s
-- change_column("issue_statuses", :position, :integer, {:default=>nil})
   -> 0.0025s
-- change_column("roles", :position, :integer, {:default=>nil})
   -> 0.0028s
-- change_column("trackers", :position, :integer, {:default=>nil})
   -> 0.0026s
== 20160416072926 RemovePositionDefaults: migrated (0.0190s) ==================

== 20160529063352 AddRolesSettings: migrating =================================
-- add_column(:roles, :settings, :text)
   -> 0.0050s
== 20160529063352 AddRolesSettings: migrated (0.0053s) ========================

RE: Problems upgrading from 3.1.2.stable to 3.3.0.stable - Added by James H over 7 years ago

looks like its creating a new redmine database/schema..

are u sure you have it pointed to the right db?

are u sure u are working with ur old data?

RE: Problems upgrading from 3.1.2.stable to 3.3.0.stable - Added by Brendan Pike over 7 years ago

I'm 100% certain. I exported from the live database, and then viewed the data via phpmyadmin before and then after the process.

Given no one seems to be able to help me perhaps I should open a ticket, perhaps there is a bug that only manifests itself in certain environments, hard to believe I'd be the only one though. :(

RE: Problems upgrading from 3.1.2.stable to 3.3.0.stable - Added by James H over 7 years ago

Can you still run redmine 3.1.2 with your database as is?

If yes, then try migrating into a different version, like 3.2.x and see if you can keep your data.

The fact that it looks like its creating a whole new redmine db/schema instead of just migrating the db makes me think you have the db connection set up incorrectly.

RE: Problems upgrading from 3.1.2.stable to 3.3.0.stable - Added by Brendan Pike over 7 years ago

James H wrote:

Can you still run redmine 3.1.2 with your database as is?

If yes, then try migrating into a different version, like 3.2.x and see if you can keep your data.

The fact that it looks like its creating a whole new redmine db/schema instead of just migrating the db makes me think you have the db connection set up incorrectly.

Yes I can, I'm still using 3.1.2. Is there a guide on data migration somewhere?

I think its highly unlikely I am pointing at the wrong database. How else could I see dozens of users in the user table, then after db upgrade in the same table there is only the default admin account?

RE: Problems upgrading from 3.1.2.stable to 3.3.0.stable - Added by Toshi MARUYAMA over 7 years ago

Are you sure correct in database.yml and RAILS_ENV variable?

RE: Problems upgrading from 3.1.2.stable to 3.3.0.stable - Added by Brendan Pike over 7 years ago

Definitely correct in database.yml, how do I check the RAILS_ENV variable?

    (1-18/18)