Would you please resend this question to rubyonrails-talk? Rails I18n  
is a mailing list about internationalization.

-- fxn

On Dec 10, 2007, at 10:26 AM, Raimon Fs wrote:

> Hello,
>
>
> I'm reading from a table in the database to fetch some path to files  
> to
> import.
>
> I do a loop for each path, and for each .csv file, I update another
> table.
>
> All works perfect, but it takes lot of time, 90 files and aprox.
> 2.000.000 rows.
>
> After adding transactions, the speed has been great, 400% faster.
>
> Now, as I see I have to specify the table for wich the transaction
> occur, where I have to use, the firsst table (where I fetch the path  
> to
> files) or from the other one ?
>
> I update the path file row with a timestamp, rows created/ 
> updated/... ,
> so if I problem occurs with some file, I don't want to update their
> status as done nor having any new data in the other table.
>
> for your info:
>
> table master => has the path files
> table dades => has de data
> database backend => sqlite (only has only one transaction, and not per
> table, per database)
>
> thanks,
>
>
> raimon
>
>
>
> code:
> ----------------------------
>
> def import_file_nc8_ajax
>
>    @txt_to_return = ""
>    @txt_rows_imported = 0
>
>    # delete all the rows in Master for nc8 ...
>    @result = Arxiu.find_by_sql('DELETE FROM masters')
>
>    @txt_to_return += "<p><b>Deleted all rows from NC8 table</b></p>"
>
>    @columns = Arxiu.content_columns # id, nc8, nacer
>
>
>    @file_paths=Arxiu.find(:all, :conditions => 'kind="nc8"')
>
>    require 'csv'
>
>
>    for arxiu in @file_paths
>
>      @rows_per_file = 0
>  begin
>
>    Master.transaction do
>
>    CSV.open(arxiu.file_path, "r") do |row|
>
>        @data_new=Master.new
>        @data_new.nc8 = row[0]
>        @data_new.nacer = row[1]
>        @data_new.save
>
>        @txt_rows_imported += 1
>        @rows_per_file += 1
>
>      end    # CSV.open... do
>
>    end # transaction
>
>  rescue
>
>  end # begin
>
>     arxiu.update_last=Time.now()
>     arxiu.update_rows = @rows_per_file
>     arxiu.save
>
>
>  end
>
>      @txt_to_return += "<p><b>Successfully created " +
> @txt_rows_imported.to_s + " rows </b></p>"
>      @txt_to_return += "<p><b>from " + @file_paths.size.to_s + " files
> </b></p>"
>
>    render(:text => @txt_to_return)
>
>  end # import_file_nc8_ajax
> -- 
> Posted via http://www.ruby-forum.com/.
> _______________________________________________
> Railsi18n-discussion mailing list
> Railsi18n-discussion@rubyforge.org
> http://rubyforge.org/mailman/listinfo/railsi18n-discussion

_______________________________________________
Railsi18n-discussion mailing list
Railsi18n-discussion@rubyforge.org
http://rubyforge.org/mailman/listinfo/railsi18n-discussion

Reply via email to