Hi, I am using Ruby - 1.8.6 and Rails- 1.2.6. When I trying to upload data using the .sql file through my code I got "Mysql::Error: Lost connection to MySQL server during query: rollback;" File size is 6 MB. The code I have used is like: numberOfRecord ActiveRecord::Base.connection.update(File.open(fileName).read) Please let me know how I upload data using huge .sql file. If anyone has any possible solutions or help on this problem it would be appreciated very much. Thank you -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
To bulk-load a database, I''d use the tools provided by the database. With mysql, you''d do something like this (assuming that you''re logged in to the database server): $ mysql -u [username] -p [database] < [file] For example: $ mysql -u craig -p hockey_development < players.sql The -p flag will tell mysql to prompt me for a password, since I didn''t include one right after it so I don''t have to enter it in plain text. It doesn''t show any progress. When it''s done, you''ll be back at the command prompt. If for some reason you really need to do this through Rails, I recommend looking at ar-extensions [ http://continuousthinking.com/tags/arext ] for much speedier loading. Regards, Craig --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Hey Hitesh, You could also use Heroku''s yml data plugin http://blog.heroku.com/archives/2007/11/23/yamldb_for_databaseindependent_data_dumps/ Al On Feb 8, 5:31 am, Craig Demyanovich <cdemyanov...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> To bulk-load a database, I''d use the tools provided by the database. With > mysql, you''d do something like this (assuming that you''re logged in to the > database server): > > $ mysql -u [username] -p [database] < [file] > > For example: > > $ mysql -u craig -p hockey_development < players.sql > > The -p flag will tell mysql to prompt me for a password, since I didn''t > include one right after it so I don''t have to enter it in plain text. It > doesn''t show any progress. When it''s done, you''ll be back at the command > prompt. > > If for some reason you really need to do this through Rails, I recommend > looking at ar-extensions [http://continuousthinking.com/tags/arext] for > much speedier loading. > > Regards, > Craig--~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Craig Demyanovich wrote:> To bulk-load a database, I''d use the tools provided by the database. > With > mysql, you''d do something like this (assuming that you''re logged in to > the > database server): > > $ mysql -u [username] -p [database] < [file] > > For example: > > $ mysql -u craig -p hockey_development < players.sql > > The -p flag will tell mysql to prompt me for a password, since I didn''t > include one right after it so I don''t have to enter it in plain text. It > doesn''t show any progress. When it''s done, you''ll be back at the command > prompt. > > If for some reason you really need to do this through Rails, I recommend > looking at ar-extensions [ http://continuousthinking.com/tags/arext ] > for > much speedier loading. > > Regards, > CraigHi Craig, Thanks for your response. But I want to upload sql file using ROR. I observed that the problem with ruby statement which I have write. numberOfRecord = ActiveRecord::Base.connection.update(File.open(fileName).read) I think the update method has some limitation, that''s y I am not able to upload huge sql file. It works fine with small size of sql file if file size is < 900 kb. Thanks Hitesh -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ 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 you got your ''max_allowed_packet'' set too low in your database config. fill in a bigger value and try again. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
MaD wrote:> maybe you got your ''max_allowed_packet'' set too low in your database > config. fill in a bigger value and try again.Thanks, It is working now I am able to upload sql file. But facing another problem. My file has multiple INSERT statement with multiple values during uploading It gives me error Error: #42000You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax..... If I upload data using same file via command prompt on sql it works. Could you please help on this. Thanks For your response. Hitesh -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
hard to say. does it give you any more information about where and what went wrong? probably some problem with escaping or sth. like it. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
On Feb 9, 8:11 am, Hitesh Rawal <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> ActiveRecord::Base.connection.update()File.open(fileName.read)One of the constraints of using ActiveRecord::Base.connection is that it can only do one statement at a time if you try and pass in "first statement ; second statement" it will break. you may find something like this works better. sql = File.open(fileName).read statements = sql.split(";") count = 0 statements.each do |sql_statement| count += ActiveRecord::Base.connection.update(sql_statement) end --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Matthew Rudy Jacobs wrote:> On Feb 9, 8:11�am, Hitesh Rawal <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> > wrote: >> ActiveRecord::Base.connection.update()File.open(fileName.read) > > One of the constraints of using ActiveRecord::Base.connection is that > it can only do one statement at a time > > if you try and pass in "first statement ; second statement" it will > break. > > you may find something like this works better. > > sql = File.open(fileName).read > > statements = sql.split(";") > > count = 0 > statements.each do |sql_statement| > count += ActiveRecord::Base.connection.update(sql_statement) > endYes you are correct, I have used same approach to update my db records. Thanks for your response. But I dont want to use use this approach because not sure that, is ruby variable keep huge amount of data? I have tested with 10MB sql file and It works fine but don''t know what happen when the file size is more than 10MB. Please let me know, If you have any Idea or Experience? Thanks Hitesh -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---