Здравствуйте
Использую Rail 3.2.13 , версия гема 0.3.1. БД MySQL. Гем решил использовать для сохранения большого количества записей в БД за раз. Порядка 200 тысяч. Решил вначале протестировать из консоли.
Loading development environment (Rails 3.2.13)
1.9.3-p448 :001 > statuses = [Status.new(name: 'test1'), Status.new(name: 'test2')]
=> [#<Status id: nil, name: "test1", validity: true, created_at: nil, updated_at: nil, info: nil>, #<Status id: nil, name: "test2", validity: true, created_at: nil, updated_at: nil, info: nil>]
1.9.3-p448 :002 > Status.import statuses
Status Exists (0.3ms) SELECT 1 AS one FROM `statuses` WHERE `statuses`.`name` = 'test1' LIMIT 1
Status Exists (0.2ms) SELECT 1 AS one FROM `statuses` WHERE `statuses`.`name` = 'test2' LIMIT 1
(0.4ms) SHOW VARIABLES like 'max_allowed_packet';
Class Create Many Without Validations Or Callbacks (0.3ms) INSERT INTO `statuses` (`id`,`name`,`validity`,`created_at`,`updated_at`,`info`) VALUES (NULL,'test1',1,'2014-08-27 11:36:59','2014-08-27 11:36:59',NULL),(NULL,'test2',1,'2014-08-27 11:36:59','2014-08-27 11:36:59',NULL) ON DUPLICATE KEY UPDATE `statuses`.`updated_at`=VALUES(`updated_at`)
=> #<struct ActiveRecord::Import::Result failed_instances=[], num_inserts=1>
1.9.3-p448 :003 > Status.all
Status Load (0.3ms) SELECT `statuses`.* FROM `statuses`
=> [#<Status id: 1, name: "test1", validity: true, created_at: "2014-08-27 07:36:59", updated_at: "2014-08-27 07:36:59", info: nil>, #<Status id: 2, name: "test2", validity: true, created_at: "2014-08-27 07:36:59", updated_at: "2014-08-27 07:36:59", info: nil>]
Но в БД записей нет. Только рельсы видят записи:) Вроде сделал всё как в описании к гему. Подскажите в чем ошибка?
update: Если после import создам ещё одну запись средствами ActiveRecord:
1.9.3-p448 :011 > Status.create(name: 'test3')
То все три записи окажутся в БД. Подскажите пожалуйста где зарыта собака?:)