I am using a habtm relationship between two tables and the migration fails when updating the join table. However, it works when doing it step by step in the console! Here is the code: class User < ActiveRecord::Base acts_as_authentic belongs_to :role has_and_belongs_to_many :dim_teams, :association_foreign_key => :team_id end class DimTeam < ActiveRecord::Base set_primary_key "team_id" has_and_belongs_to_many :users, :foreign_key => "team_id" end class AddUserData < ActiveRecord::Migration def self.up role = Role.find_by_role(''User'') team1 = DimTeam.find_by_team_name(''Essex'') user = User.new user.login = "snapes" user.email = "snapes-hPnsJKoOgz2ceuylJ9vXTw@public.gmane.org" user.password = "password" user.password_confirmation = "password" user.role = role user.save user = User.find_by_login("snapes") user.dim_teams << team1 end def self.down end end When I run the code step by step in the console, it works. The final user.dim_teams << team1 line produces the following output in development.log: SQL (2.8ms) INSERT INTO [dim_teams_users] ([team_id], [user_id]) VALUES (13, 2) When I run it as a rake task, I get SQL (0.0ms)[0m [0mDBI::DatabaseError: (102) [unixODBC][FreeTDS][SQL Server]Incorrect syntax near '')''.: INSERT INTO [dim_teams_users] () VALUES ()[0m Can anybody explain why the difference to me please? thanks --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Maybe team1 is nil when it''s being run in the migration? I would check it in debugger or add some logging statements just before that. Any chance the migrations are being run against a different environment, and thus a different database? dwh Martin Hawkins wrote:> I am using a habtm relationship between two tables and the migration > fails when updating the join table. However, it works when doing it > step by step in the console! > > Here is the code: > class User < ActiveRecord::Base > acts_as_authentic > belongs_to :role > has_and_belongs_to_many :dim_teams, :association_foreign_key > => :team_id > end > > class DimTeam < ActiveRecord::Base > > set_primary_key "team_id" > > has_and_belongs_to_many :users, :foreign_key => "team_id" > > end > > > class AddUserData < ActiveRecord::Migration > def self.up > > role = Role.find_by_role(''User'') > team1 = DimTeam.find_by_team_name(''Essex'') > user = User.new > user.login = "snapes" > user.email = "snapes-hPnsJKoOgz2ceuylJ9vXTw@public.gmane.org" > user.password = "password" > user.password_confirmation = "password" > user.role = role > user.save > user = User.find_by_login("snapes") > user.dim_teams << team1 > > end > > def self.down > end > end > > When I run the code step by step in the console, it works. The final > user.dim_teams << team1 line produces the following output in > development.log: > SQL (2.8ms) INSERT INTO [dim_teams_users] ([team_id], [user_id]) > VALUES (13, 2) > > When I run it as a rake task, I get > SQL (0.0ms)[0m [0mDBI::DatabaseError: (102) [unixODBC][FreeTDS][SQL > Server]Incorrect syntax near '')''.: INSERT INTO [dim_teams_users] () > VALUES ()[0m > > Can anybody explain why the difference to me please? > thanks > > > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Useful idea about using logging statements. It''s definitely the correct environment though... Martin On Jan 24, 4:17 pm, Denis Haskin <de...-QjqrIaraUJHsRQ7aLHQQZ6xOck334EZe@public.gmane.org> wrote:> Maybe team1 is nil when it''s being run in the migration? I would check > it in debugger or add some logging statements just before that. > > Any chance the migrations are being run against a different environment, > and thus a different database? > > dwh > > Martin Hawkins wrote: > > I am using a habtm relationship between two tables and the migration > > fails when updating the join table. However, it works when doing it > > step by step in the console! > > > Here is the code: > > class User < ActiveRecord::Base > > acts_as_authentic > > belongs_to :role > > has_and_belongs_to_many :dim_teams, :association_foreign_key > > => :team_id > > end > > > class DimTeam < ActiveRecord::Base > > > set_primary_key "team_id" > > > has_and_belongs_to_many :users, :foreign_key => "team_id" > > > end > > > class AddUserData < ActiveRecord::Migration > > def self.up > > > role = Role.find_by_role(''User'') > > team1 = DimTeam.find_by_team_name(''Essex'') > > user = User.new > > user.login = "snapes" > > user.email = "sna...-hPnsJKoOgz2ceuylJ9vXTw@public.gmane.org" > > user.password = "password" > > user.password_confirmation = "password" > > user.role = role > > user.save > > user = User.find_by_login("snapes") > > user.dim_teams << team1 > > > end > > > def self.down > > end > > end > > > When I run the code step by step in the console, it works. The final > > user.dim_teams << team1 line produces the following output in > > development.log: > > SQL (2.8ms) INSERT INTO [dim_teams_users] ([team_id], [user_id]) > > VALUES (13, 2) > > > When I run it as a rake task, I get > > SQL (0.0ms)[0m [0mDBI::DatabaseError: (102) [unixODBC][FreeTDS][SQL > > Server]Incorrect syntax near '')''.: INSERT INTO [dim_teams_users] () > > VALUES ()[0m > > > Can anybody explain why the difference to me please? > > thanks--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---