Commit Graph

31 Commits (038a29682e67289dbb905b8f57500639c6b541b1)

Author SHA1 Message Date
Denis Knauf 038a29682e import_many, import_*: returns last_inserted_id 2013-01-03 17:07:10 +01:00
Doug Orleans d0c1055b65 Fix example in doc comment. 2012-12-14 09:59:59 -05:00
Dingding Ye 1ae5122642 Performance improvements.
* Serialize the column using specified coder before inserting
* Cache the ActiveRecord connection once per call to generate values SQL
* Call sequence_name last since it's more expensive
2012-12-14 09:50:36 -05:00
James Le Cuirot 22473145d1 Add scope-awareness feature 2012-09-20 15:15:21 +01:00
James Abley b03af0cd3e Provide more detailed error message
If we don't have a mapping for a column name, provide the column name
as well as the index in the array.
2012-09-14 14:01:00 +01:00
Zach Dennis 6182b944ef Merge pull request #56 from grzuy/support_all_or_none_records
Adds support for :all_or_none option on #import
2012-08-29 20:48:18 -07:00
Ben Pickles f12d72b0b1 Raise a useful message when a value doesn't have a corresponding column. 2012-08-19 19:41:02 +01:00
Jared Luxenberg e12f9c4951 Model#import fails to find model's primary key sequence
Fixes a bug where Model#import does not work when a model's primary key
has no associated 'sequence' in the database. If a value for the primary
key is specified, then the insert should not require a database
'sequence' to generate a value for that primary key field.
2012-08-04 17:35:50 -07:00
Gonzalo Rodriguez eac7d5f949 Adds support for :all_or_none option on #import 2012-05-19 17:40:04 -03:00
Zach Dennis 5aefbb2989 Do not use ActiveRecord::Base.new(hsh) when instantiating AR models. Use form of instantiation that allows protected attributes to be set. 2011-04-29 00:13:26 -04:00
Zach Dennis 58b144b6bf Updating documentation for synchronizing unsaved/new instances with import.
https://github.com/zdennis/activerecord-import/issues/16
2011-04-06 14:23:13 -04:00
Zach Dennis 7958ed18c2 Added :synchronize_keys to the import options so importing can synchronize on fields beside the primary key.
https://github.com/zdennis/activerecord-import/issues/16
2011-04-06 14:20:53 -04:00
Franck Verrot d901a7c60f Importing an empty array of objects/values should be supported 2011-03-19 15:11:28 -04:00
Zach Dennis 161cf017f9 Renamed #values_sql_for_column_names_and_attributes to #values_sql_for_columns_and_attributes and cleaned up how it dealt with columns.
* added back in the support for type-casting based on the database column
* removed unused method in ActiveRecord::Import::AbstractAdapter

https://github.com/zdennis/activerecord-import/issues#issue/5
2011-01-10 22:36:52 -05:00
Ben Woosley 1a8082444b Simplify validations_arry_for_column_names_and_attributes with map, each_with_index and Hash.
Hash[column_names.zip(attributes)] would be much clearer, but would leave nil values for missing attributes which doesn't match the existing behavior.
2011-01-10 22:27:24 -05:00
Ben Woosley c9f246f4e2 Consolidate insert_sql between supports_import? cases so both make use of options[:ignore] 2011-01-10 22:27:23 -05:00
Ben Woosley 9727a04362 Reinstate the deleting of the :validate option - not because it was causing trouble, but to be a bit paranoid (reverts 63d6faeccee14b6e571a25b6f51f340d5da325f5) 2011-01-10 22:27:23 -05:00
Ben Woosley 7bd0e2693a Fix that values_sql_for_attributes wasn't accessing the columns with the same indexes as the array_of_attributes, and so was sometime mismatched.
Also return to the column_names[j] == primary_key style of testing, as the column itself is not always present
2011-01-10 22:27:22 -05:00
Ben Woosley df75eea4db Go more direct in the columns lookup 2011-01-10 22:26:39 -05:00
Ben Woosley 35786fef17 Codify import results in a Struct rather than OpenStruct, as it's a faster, more rigid structure 2011-01-10 22:12:34 -05:00
Ben Woosley 876546c584 #dup array_of_attributes a bit earlier - there's no point in duping the primary_key nulls we might put in next 2011-01-10 22:12:34 -05:00
Ben Woosley 899af1e412 No reason to pull :validate out of the options hash, and it's obfuscatory - remove. 2011-01-10 22:12:34 -05:00
Ben Woosley 18012bbbca More simplicity, once again with #map 2011-01-10 22:12:33 -05:00
Ben Woosley 3756e4f2b4 Refactor remaining supports_import? split to share code in values_sql_for_column_names_and_attributes. This means both with properly support sequences.
Rather than pass a ton of variables (sequence_name, columns, column_names, &c.), move the method out of the connection.  Also, use Column#primary to check primary key status.
2011-01-10 22:12:29 -05:00
Ben Woosley 5f4d9b3290 Extract columns_sql local more generally in #import_without_validations_or_callbacks. This is DRY-er, more consistent between the supports_import? cases and enables us to inline #quote_column_names 2011-01-10 22:11:54 -05:00
Ben Woosley 7aefcf1164 Inline multiple_value_sets_insert_sql because it never changes, isn't particularly well-factored, and for parity with "not supports_import?" 2011-01-10 21:57:41 -05:00
Ben Woosley 2ada56f858 Avoid N << method calls in #import_without_validations_or_callbacks by chaining #map (is simpler, should be more performant, AFAIK) 2011-01-10 21:57:40 -05:00
Ben Woosley fff00af942 Don't initialize options[:on_duplicate_key_update] if the adapter doesn't #supports_on_duplicate_key_update? 2011-01-10 21:57:40 -05:00
Zach Dennis 8fbf841fde Use ActiveRecord Column#type_cast to properly parse fields represented by a string.
Fixed issued reported by Nick Burdick where imported datetime fields was not correctly working with certain string formats for MySQL which doesn't support MM/DD/YYYY format directly.
2011-01-05 19:09:55 -05:00
Zach Dennis 90057c43eb Renaming ActiveRecord::Extensions to ActiveRecord::Import. 2010-09-26 17:05:02 -04:00
Zach Dennis 4fcfa7fd14 Restructuring directories. 2010-06-26 15:43:34 -04:00