db:migrate - Mysql::Error: Unknown column 'projects.suspended_at'

145 views
Skip to first unread message

ssdowd

unread,
Feb 25, 2011, 12:15:28 AM2/25/11
to Gitorious
I get the following when trying to run a db:migrate (first time):
(ubuntu 10.4, rake 0.8.7, ruby 1.8.7)

Mysql::Error: Unknown column 'projects.suspended_at' in 'where
clause': SELECT * FROM `projects` WHERE (`projects`.`suspended_at` IS
NULL)

Here's the full trace:

# rake --trace db:migrate RAILS_ENV=development
(in /usr/local/gitorious/mainline)
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:migrate
== CreateUsers: migrating
====================================================
-- create_table("users", {:force=>true})
-> 0.0106s
-- add_index(:users, :login)
-> 0.0195s
-- add_index(:users, :email)
-> 0.0182s
== CreateUsers: migrated (0.0488s)
===========================================

== CreateProjects: migrating
=================================================
-- create_table(:projects)
-> 0.0095s
-- add_index(:projects, :name)
-> 0.0177s
-- add_index(:projects, :user_id)
-> 0.0166s
== CreateProjects: migrated (0.0449s)
========================================

== RenameProjectNameToTitle: migrating
=======================================
-- rename_column(:projects, :name, :title)
-> 0.0105s
== RenameProjectNameToTitle: migrated (0.0107s)
==============================

== CreateRepositories: migrating
=============================================
-- create_table(:repositories)
-> 0.0097s
-- add_index(:repositories, :name)
-> 0.0175s
-- add_index(:repositories, :project_id)
-> 0.0161s
-- add_index(:repositories, :user_id)
-> 0.0158s
== CreateRepositories: migrated (0.0601s)
====================================

== AddSshKeyToUsers: migrating
===============================================
-- add_column(:users, :ssh_key, :text)
-> 0.0176s
== AddSshKeyToUsers: migrated (0.0179s)
======================================

== AddSlugToProjects: migrating
==============================================
-- add_column(:projects, :slug, :string)
-> 0.0150s
-- add_index(:projects, :slug, {:unique=>true})
-> 0.0173s
== AddSlugToProjects: migrated (0.0327s)
=====================================

== AddMainlineToProjects: migrating
==========================================
-- add_column(:repositories, :mainline, :boolean, {:default=>false})
-> 0.0168s
-- add_column(:repositories, :parent_id, :integer)
-> 0.0180s
-- add_index(:repositories, :parent_id)
-> 0.0187s
== AddMainlineToProjects: migrated (0.0541s)
=================================

== CreatePermissions: migrating
==============================================
-- create_table(:permissions)
-> 0.0089s
-- add_index(:permissions, :user_id)
-> 0.0170s
-- add_index(:permissions, :repository_id)
-> 0.2158s
== CreatePermissions: migrated (0.2425s)
=====================================

== AddMoreInfoToProjects: migrating
==========================================
-- add_column(:projects, :license, :string)
-> 0.0470s
-- add_column(:projects, :home_url, :string)
-> 0.0480s
-- add_column(:projects, :mailinglist_url, :string)
-> 0.0254s
-- add_column(:projects, :bugtracker_url, :string)
-> 0.0179s
== AddMoreInfoToProjects: migrated (0.1404s)
=================================

== CreateSshKeys: migrating
==================================================
-- create_table(:ssh_keys)
-> 0.0086s
-- remove_column(:users, :ssh_key)
-> 0.0179s
-- add_column(:users, :ssh_key_id, :integer)
-> 0.0157s
-- add_index(:ssh_keys, :user_id)
-> 0.0193s
-- add_index(:users, :ssh_key_id)
-> 0.1629s
== CreateSshKeys: migrated (0.2258s)
=========================================

== AddReadyStatusToRepositories: migrating
===================================
-- add_column(:repositories, :ready, :boolean, {:default=>false})
-> 0.0688s
-- add_index(:repositories, :ready)
-> 0.0476s
== AddReadyStatusToRepositories: migrated (0.1173s)
==========================

== ActsAsTaggableMigration: migrating
========================================
-- create_table(:tags)
-> 0.0083s
-- add_index(:tags, :name, {:unique=>true})
-> 0.0164s
-- create_table(:taggings)
-> 0.0516s
-- add_index(:taggings, :tag_id)
-> 0.0570s
-- add_index(:taggings, [:taggable_id, :taggable_type])
-> 0.0205s
== ActsAsTaggableMigration: migrated (0.1556s)
===============================

== AddFullnameToUsers: migrating
=============================================
-- add_column(:users, :fullname, :string)
-> 0.0448s
== AddFullnameToUsers: migrated (0.0450s)
====================================

== RenamePermissionsToCommitterships: migrating
==============================
-- rename_table(:permissions, :committerships)
-> 0.0066s
== RenamePermissionsToCommitterships: migrated (0.0094s)
=====================

== AddReadyToSshKey: migrating
===============================================
-- add_column(:ssh_keys, :ready, :boolean, {:default=>false})
-> 0.0589s
== AddReadyToSshKey: migrated (0.0591s)
======================================

== CreateTasks: migrating
====================================================
-- create_table(:tasks)
-> 0.0106s
-- add_index(:tasks, :performed)
-> 0.0336s
== CreateTasks: migrated (0.0446s)
===========================================

== AddTargetIdToTasks: migrating
=============================================
-- add_column(:tasks, :target_id, :integer)
-> 0.0185s
== AddTargetIdToTasks: migrated (0.0187s)
====================================

== AddUrlToUsers: migrating
==================================================
-- add_column(:users, :url, :text)
-> 0.0168s
== AddUrlToUsers: migrated (0.0171s)
=========================================

== CreateComments: migrating
=================================================
-- create_table(:comments)
-> 0.0091s
-- add_index(:comments, :user_id)
-> 0.0163s
-- add_index(:comments, :repository_id)
-> 0.0144s
-- add_index(:comments, :sha1)
-> 0.0332s
== CreateComments: migrated (0.0739s)
========================================

== AddProjectIdToComments: migrating
=========================================
-- add_column(:comments, :project_id, :integer)
-> 0.0868s
-- add_index(:comments, :project_id)
-> 0.0677s
== AddProjectIdToComments: migrated (0.1568s)
================================

== CreateMergeRequests: migrating
============================================
-- create_table(:merge_requests)
-> 0.0189s
-- add_index(:merge_requests, :user_id)
-> 0.0403s
-- add_index(:merge_requests, :source_repository_id)
-> 0.0145s
-- add_index(:merge_requests, :target_repository_id)
-> 0.0190s
-- add_index(:merge_requests, :status)
-> 0.0163s
== CreateMergeRequests: migrated (0.1104s)
===================================

== AddBranchesToMergeRequests: migrating
=====================================
-- add_column(:merge_requests, :source_branch, :string)
-> 0.0187s
-- add_column(:merge_requests, :target_branch, :string)
-> 0.0179s
== AddBranchesToMergeRequests: migrated (0.0370s)
============================

== CreateCloners: migrating
==================================================
-- create_table(:cloners)
-> 0.0077s
== CreateCloners: migrated (0.0079s)
=========================================

== CreateEvents: migrating
===================================================
-- create_table(:events)
-> 0.0974s
-- add_index(:events, :user_id)
-> 0.0204s
-- add_index(:events, :project_id)
-> 0.0199s
== CreateEvents: migrated (0.1385s)
==========================================

== AddIndicesToEvents: migrating
=============================================
-- add_index(:events, [:target_type, :target_id])
-> 0.0600s
-- add_index(:events, :created_at)
-> 0.0355s
-- add_index(:events, :action)
-> 0.0184s
== AddIndicesToEvents: migrated (0.1146s)
====================================

== AddIndexesToCloners: migrating
============================================
-- add_index(:cloners, :repository_id)
-> 0.0140s
-- add_index(:cloners, :date)
-> 0.0175s
-- add_index(:cloners, :ip)
-> 0.1222s
== AddIndexesToCloners: migrated (0.1543s)
===================================

== AddIdentityUrlToUsers: migrating
==========================================
-- add_column(:users, :identity_url, :text)
-> 0.0211s
== AddIdentityUrlToUsers: migrated (0.0214s)
=================================

== AddOpenIdAuthenticationTables: migrating
==================================
-- create_table(:open_id_authentication_associations, {:force=>true})
-> 0.0113s
-- create_table(:open_id_authentication_nonces, {:force=>true})
-> 0.0342s
== AddOpenIdAuthenticationTables: migrated (0.0461s)
=========================

== AddNewFlagsToUser: migrating
==============================================
-- add_column(:users, :is_admin, :boolean, {:default=>false})
-> 0.0181s
-- add_column(:users, :suspended_at, :datetime)
-> 0.0150s
== AddNewFlagsToUser: migrated (0.0335s)
=====================================

== AddKindToRepository: migrating
============================================
-- add_column(:repositories, :kind, :integer, {:default=>0})
-> 0.0187s
-- add_index(:repositories, :kind)
-> 0.0152s
== AddKindToRepository: migrated (0.0344s)
===================================

== AddKindIndexesOnRepositories: migrating
===================================
-- add_index(:repositories, [:project_id, :kind])
-> 0.0215s
== AddKindIndexesOnRepositories: migrated (0.0217s)
==========================

== CreateGroups: migrating
===================================================
-- transaction()
-- create_table(:groups)
-> 0.0109s
-- add_index(:groups, [:name, :public])
-> 0.0438s
-- add_index(:groups, :user_id)
-> 0.0127s
-- add_index(:groups, [:project_id, :public])
-> 0.0179s
-- create_table(:roles)
-> 0.0091s
-- create_table(:memberships)
-> 0.0082s
-- add_index(:memberships, [:group_id, :user_id])
-> 0.0163s
-> 0.1542s
== CreateGroups: migrated (0.1550s)
==========================================

== AddRepositoryToGroup: migrating
===========================================
-- transaction()
-- add_column(:repositories, :owner_type, :string)
-> 0.0399s
-- add_column(:repositories, :owner_id, :integer)
-> 0.0231s
-- add_index(:repositories, [:owner_type, :owner_id])
-> 0.0214s
-> 0.0897s
== AddRepositoryToGroup: migrated (0.0899s)
==================================

== AddingStateToUser: migrating
==============================================
-- add_column(:users, :aasm_state, :string)
-> 0.0174s
== AddingStateToUser: migrated (0.0177s)
=====================================

== NukeCommitterships: migrating
=============================================
== NukeCommitterships: migrated (0.0000s)
====================================

== AddingRangeOfCommitsToMergeRequest: migrating
=============================
-- add_column(:merge_requests, :starting_commit, :string)
-> 0.0188s
-- add_column(:merge_requests, :ending_commit, :string)
-> 0.0156s
== AddingRangeOfCommitsToMergeRequest: migrated (0.0349s)
====================

== MoveProjectRepositoriesToOwner: migrating
=================================
-- transaction()
-> 0.0049s
== MoveProjectRepositoriesToOwner: migrated (0.0052s)
========================

== AddHashedPathToRepositories: migrating
====================================
-- transaction()
-- add_column(:repositories, :hashed_path, :string)
-> 0.0193s
-- add_index(:repositories, :hashed_path)
-> 0.0215s
-- ===> Now go and run script/shard_git_repositories_by_hash as the
"git" user <===
-> 0.0459s
== AddHashedPathToRepositories: migrated (0.0460s)
===========================

== AddOwnerToProjects: migrating
=============================================
-- transaction()
-- add_column(:projects, :owner_id, :integer)
-> 0.0773s
-- add_column(:projects, :owner_type, :string)
-> 0.0167s
-- add_index(:projects, [:owner_type, :owner_id])
-> 0.0514s
rake aborted!
An error has occurred, all later migrations canceled:

Mysql::Error: Unknown column 'projects.suspended_at' in 'where
clause': SELECT * FROM `projects` WHERE (`projects`.`suspended_at` IS
NULL)
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/connection_adapters/abstract_adapter.rb:219:in `log'
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/connection_adapters/mysql_adapter.rb:323:in `execute'
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/connection_adapters/mysql_adapter.rb:608:in `select'
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/connection_adapters/abstract/database_statements.rb:7:in
`select_all_without_query_cache'
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/connection_adapters/abstract/query_cache.rb:62:in
`select_all'
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/base.rb:661:in `find_by_sql'
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/base.rb:1548:in `find_every'
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/base.rb:615:in `find'
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/base.rb:635:in `all'
./db/migrate//20090204131336_add_owner_to_projects.rb:10:in
`up_without_benchmarks'
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/connection_adapters/abstract/database_statements.rb:
136:in `transaction'
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/migration.rb:352:in `send'
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/migration.rb:352:in `method_missing'
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/migration.rb:328:in `say_with_time'
/usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/migration.rb:328:in `say_with_time'
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/migration.rb:348:in `method_missing'
./db/migrate//20090204131336_add_owner_to_projects.rb:3:in
`up_without_benchmarks'
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/migration.rb:282:in `send'
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/migration.rb:282:in `migrate'
/usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/migration.rb:282:in `migrate'
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/migration.rb:365:in `__send__'
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/migration.rb:365:in `migrate'
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/migration.rb:486
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/migration.rb:562:in `call'
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/migration.rb:562:in `ddl_transaction'
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/migration.rb:485:in `migrate'
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/migration.rb:472:in `each'
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/migration.rb:472:in `migrate'
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/migration.rb:400:in `up'
/usr/local/gitorious/mainline/vendor/rails/activerecord/lib/
active_record/migration.rb:383:in `migrate'
/usr/local/gitorious/mainline/vendor/rails/railties/lib/tasks/
databases.rake:116
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execute'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execute'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:in
`invoke_with_call_chain'
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in
`invoke_with_call_chain'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:583:in `invoke'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in
`invoke_task'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in
`standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in
`standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/bin/rake:31
/usr/bin/rake:19:in `load'
/usr/bin/rake:19

Ryan Gibbons

unread,
Feb 27, 2011, 2:46:02 PM2/27/11
to gito...@googlegroups.com
I had the same problem I got around it by migrated like this .. it's hack and I make no guarantees you will have a working system when it's down, but it should be okay :/

Option 1
export RAILS_ENV=production
rake db:migrate VERSION=20090203101718
then go into database and add a column to projects able named suspended_at
rake db:migrate
this will fail, go into the database and remove the column suspended_at
rake db:migrate
and it should work.

Max Masnick

unread,
Feb 25, 2011, 1:48:56 PM2/25/11
to Gitorious
I don't know what is causing this error, but I can confirm it as being
introduced in a425f3b.

If you want to continue with your install, run "git checkout 63051e0".

Max

Sheldon

unread,
Feb 28, 2011, 6:33:55 PM2/28/11
to Gitorious
I got the same error, here is my walkaround:

After the first time you get the error, run the following statements
with mysql:
alter table projects add suspended_at datetime;
alter table projects drop owner_id;
alter table projects drop owner_type;
(The last 2 lines are necessary, or you'll get 'Duplicate column'
error for owner_id next time)

Run db:migrate again
This time you are supposed to get another error: Mysql::Error:
Duplicate column name 'suspended_at'
Turn to mysql again, run:
alter table projects drop suspended_at;

Then run db:migrate again. It should be OK this time.

Gitorious seems alright so far, after the installation.

> -- ...
>
> read more »

Sheldon

unread,
Feb 28, 2011, 6:43:48 PM2/28/11
to Gitorious
I got the same error, here is my walkaround:

After the first time you get the error, run the following statements
with mysql:
alter table projects add suspended_at datetime;
alter table projects drop owner_id;
alter table projects drop owner_type;

Then run db:migrate again (The last 2 lines are necessary, or you'll
get 'Duplicate column' error for owner_id this time)

This time you are supposed to get another error: Mysql::Error:
Duplicate column name 'suspended_at'
Turn to mysql again, run:
alter table projects drop suspended_at;

Then run db:migrate again. It should be OK this time.

Gitorious seems alright so far, after the installation.


On Feb 25, 1:15 pm, ssdowd <ssd...@gmail.com> wrote:

> -- ...
>
> read more »

Marcin Olak

unread,
Mar 1, 2011, 8:14:46 AM3/1/11
to Gitorious
Instead of migrating try to load schema directly:

rake db:schema:load RAILS_ENV=production

On 27 Lut, 19:46, Ryan Gibbons <insanity5...@gmail.com> wrote:
> I had the same problem I got around it by migrated like this .. it's hack
> and I make no guarantees you will have a working system when it's down, but
> it should be okay :/
>
> *Option 1*
>
> export RAILS_ENV=production
> rake db:migrate VERSION=20090203101718
>
> then go into database and add a column to projects able named suspended_at
>
> rake db:migrate
>
> this will fail, go into the database and remove the column suspended_at
>
> rake db:migrate
>
> and it should work.
> *
> *

Martijn Buijs

unread,
Mar 2, 2011, 4:03:00 AM3/2/11
to gito...@googlegroups.com
I can confirm that this works. It's actually faster as well.


On Tuesday, March 1, 2011 2:14:46 PM UTC+1, Marcin Olak wrote:
Instead of migrating try to load schema directly:

rake db:schema:load RAILS_ENV=production

Marius Mårnes Mathiesen

unread,
Mar 4, 2011, 5:20:31 AM3/4/11
to gito...@googlegroups.com
Quick note: we just pushed a fix to this to the Gitorious mainline: http://gitorious.org/gitorious/mainline/commit/1044ff0339055857c97377f9ec113469e6dc03f6

The commit message describes what happened here. This problem is not catchable by running the test suite, which we of course do whenever we commit something - sorry about this.

That being said, using `rake db:schema:load` is both faster and less error-prone, and probably a better tip than db:migrate for new installs.

Cheers,
- Marius

--
To post to this group, send email to gito...@googlegroups.com
To unsubscribe from this group, send email to
gitorious+...@googlegroups.com



--
Marius Mårnes Mathiesen
Rubyist, Shortcut AS
Tel.: (+47) 92 60 95 38.

http://shortcut.no
Reply all
Reply to author
Forward
0 new messages