首页 > 解决方案 > 导入数据时出现postgresql错误

问题描述

我正在使用Ruby on Rails 5.1.7Postgresql 9.5在我的ubuntu服务器上。我正在通过gem将hash(有 10k 条记录)导入数据库。rails-import但是系统会在进程结束之前关闭进程。当我检查数据库时,我看到它会保存数据,直到它关闭进程。

我的代码:

// users is a hash  
User.import users, batch_size: 500

我得到的错误:

WARN: /home/rails/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.7/lib/active_record/connection_adapters/postgresql_adapter.rb:624:in `async_exec'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.7/lib/active_record/connection_adapters/postgresql_adapter.rb:624:in `block (2 levels) in exec_no_cache'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activesupport-5.1.7/lib/active_support/dependencies/interlock.rb:46:in `block in permit_concurrent_loads'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activesupport-5.1.7/lib/active_support/concurrency/share_lock.rb:185:in `yield_shares'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activesupport-5.1.7/lib/active_support/dependencies/interlock.rb:45:in `permit_concurrent_loads'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.7/lib/active_record/connection_adapters/postgresql_adapter.rb:623:in `block in exec_no_cache'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.7/lib/active_record/connection_adapters/abstract_adapter.rb:613:in `block (2 levels) in log'
/home/rails/.rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/monitor.rb:230:in `mon_synchronize'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.7/lib/active_record/connection_adapters/abstract_adapter.rb:612:in `block in log'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activesupport-5.1.7/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.7/lib/active_record/connection_adapters/abstract_adapter.rb:604:in `log'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.7/lib/active_record/connection_adapters/postgresql_adapter.rb:622:in `exec_no_cache'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.7/lib/active_record/connection_adapters/postgresql_adapter.rb:609:in `execute_and_clear'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.7/lib/active_record/connection_adapters/postgresql/database_statements.rb:79:in `exec_query'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.7/lib/active_record/connection_adapters/abstract/database_statements.rb:371:in `select'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.7/lib/active_record/connection_adapters/abstract/database_statements.rb:42:in `select_all'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.7/lib/active_record/connection_adapters/abstract/query_cache.rb:95:in `block in select_all'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.7/lib/active_record/connection_adapters/abstract/query_cache.rb:118:in `block in cache_sql'
/home/rails/.rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/monitor.rb:230:in `mon_synchronize'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.7/lib/active_record/connection_adapters/abstract/query_cache.rb:104:in `cache_sql'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.7/lib/active_record/connection_adapters/abstract/query_cache.rb:95:in `select_all'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.7/lib/active_record/connection_adapters/abstract/database_statements.rb:66:in `select_rows'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activerecord-5.1.7/lib/active_record/connection_adapters/abstract/database_statements.rb:60:in `select_values'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activerecord-import-1.0.2/lib/activerecord-import/adapters/postgresql_adapter.rb:29:in `insert_many'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activerecord-import-1.0.2/lib/activerecord-import/import.rb:807:in `block in import_without_validations_or_callbacks'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activerecord-import-1.0.2/lib/activerecord-import/import.rb:805:in `each'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activerecord-import-1.0.2/lib/activerecord-import/import.rb:805:in `each_slice'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activerecord-import-1.0.2/lib/activerecord-import/import.rb:805:in `import_without_validations_or_callbacks'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activerecord-import-1.0.2/lib/activerecord-import/import.rb:753:in `import_with_validations'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activerecord-import-1.0.2/lib/activerecord-import/import.rb:695:in `import_helper'
/home/rails/.rvm/gems/ruby-2.6.3/gems/activerecord-import-1.0.2/lib/activerecord-import/import.rb:531:in `bulk_import'

我该如何解决这个问题?想法?

标签: ruby-on-railsrubypostgresqlactiverecordpostgresql-9.5

解决方案


推荐阅读