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 -~----------~----~----~----~------~----~------~--~---