README.md in mass_insert-0.0.1 vs README.md in mass_insert-0.0.2
- old
+ new
@@ -39,12 +39,63 @@
:email => "angry_programmer@gmail.com",
:age => 32
}
]
-And call mass_insert method:
+And call mass_insert method from your model:
User.mass_insert(values)
+
+
+## Results
+
+Sometimes after MassInsert process you need to see some necessary information about the process. MassInsert gem provides a simple way to do it. Only call the next methods from your model after MassInsert execution.
+
+ User.mass_insert_results.records # => 120000
+
+Some result options are...
+
+1. `records` : Returns the amount of records that were persisted.
+2. `time` : Returns the time that took to do all the MassInsert process.
+3. `build_time` : Returns the time that took to create the query string that was persisted.
+4. `execute_time` : Returns the time that took to execute the query string that was persisted.
+
+
+## Options
+
+MassInsert accepts options hash by second param when you call `mass_insert` from your model. This options allow you to configure the way that the records will be created. Example...
+
+ options = {
+ :primary_key => :user_id,
+ :primary_key_mode => :manual
+ }
+
+ User.mass_insert(values, options)
+
+OR directly
+
+ User.mass_insert(values, :primary_key => :user_id, :primary_key_mode => :manual)
+
+Some options that you can include are...
+
+1. `:table_name` : Default value is the table name to your model. This options rarely needs to change but you can do it if you pass a string with the table name. Example...
+
+ options = {:table_name => "users"}
+
+2. `:primary_key` : Default value is `:id`. You can change the name of primary key column send it a symbol with the column name.
+
+ options = {:primary_key => :post_id}
+
+3. `:primary_key_mode` : Default value is `:auto`. When is `:auto` MassInsert knows that the database will generate the value of the primary key column automatically. If you pass `:manual` as primary key mode you need to create your value hashes with the key and value of the primary key column.
+
+ options = {:primary_key_mode => :manual}
+
+
+## Advantages
+
+Faster. It's depending of the computer but these are some results...
+
+* PostgreSQL - Saving 10,000 records in 0.84s
## Attention
Since this is a single database insertion your model validation will be ignored, then if you use this gem you need to be sure that information is OK to be persisted.