gpt4 book ai didi

mysql - 尝试插入时 Rails 找不到用户记录

转载 作者:数据小太阳 更新时间:2023-10-29 09:03:07 26 4
gpt4 key购买 nike

首先是重要信息。我有一台运行 Ubuntu 14.04 桌面、MySQL 服务器 5.6 和带有 rails 4.2.0.beta2 的 ruby​​ 2.1.3 的开发机器。我用 MySQL 中的两个简单表开发了一个应用程序,分别称为用户和列表。我的应用程序在这台机器上运行良好。我现在正在将它迁移到生产机器上。配置上的唯一主要区别是它运行的是 Ubuntu 服务器版而不是桌面版。虽然是同一个版本。配置该机器后,我检查了我的应用程序从源代码控制到生产。设置数据库时,我能够毫无问题地执行 rake db:create 和 rake db:schema:load 。我已经通过直接对 mysql 运行 sql 查询来验证这一点。我的问题是我无法通过我的 Rails 应用程序插入任何数据。
请注意,我仍然需要完全配置 Phusion 和 Apache,所以我现在从命令行和控制台运行。我还没有测试过我的页面。

当我尝试使用

用一个记录数据库为用户表做种时
bundle exec rake db:seed

我收到以下错误:

ArgumentError: users does not exist to be imported into. Use create_index! or the :force option to create it.

当我直接查询 mysql 检查它时,它确实有那个表。当我对其进行跟踪时,我得到:

** Invoke db:seed (first_time)
** Execute db:seed
** Invoke db:abort_if_pending_migrations (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:abort_if_pending_migrations
rake aborted!

我尝试使用rails控制台直接输入数据(为了保护无辜者更改了名称和数据值)

2.1.3 :001 > u=User.create :userid => 1, :firstname => "FName", :lastname => "LName", :email => "me@myemail.edu", :title => "Research Scientist", :department => "PSC", :building => "Big Hall", :officenumber => "123", :phonenumber => "555-555-5555", :password => "my password", :password_confirmation => "my password", :admin => true

这给了我同样的失败:

我完全不知道这里失败的原因。我包含我的 Gemfile 是因为有人在那里看到了一些东西,但同样的文件在开发中也能完美运行。

source 'http://rubygems.org'
ruby '2.1.3'

#ruby-gemset=pfinder

gem 'rails', '4.2.0.beta2'
gem 'sass-rails', '5.0.0.beta1'
gem 'bootstrap-sass', '3.2.0.0'
gem 'sprockets', '2.12.2'
gem 'bcrypt', '3.1.7'
gem 'faker', '1.4.2'
gem 'will_paginate', '3.0.7'
gem 'bootstrap-will_paginate', '0.0.10'
gem 'mini_portile', '0.6.0'
gem 'uglifier', '2.5.3'
gem 'coffee-rails', '4.0.1'
gem 'jquery-rails', '3.1.2'
gem 'turbolinks', '2.3.0'
gem 'jbuilder', '2.1.3'
gem 'rails-html-sanitizer', '1.0.1'
gem 'sdoc', '0.4.0', group: :doc
gem 'yaml_db'
gem 'json'
gem 'elasticsearch-model', git: 'git://github.com/elasticsearch/elasticsearch- rails.git'
gem 'elasticsearch-rails', git: 'git://github.com/elasticsearch/elasticsearch-rails.git'
gem 'mysql2', '0.3.18'

预先感谢您就追查此事提出的任何建议。

克里斯

最佳答案

您需要创建索引。像这样:

$ rails console

# Create the index for the User model
> User.__elasticsearch__.create_index!
=> {"acknowledged"=>true}

# Import the records
> User.import
User Load (3.2ms) SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT 1000

官方文档在这里:https://github.com/elastic/elasticsearch-rails/tree/master/elasticsearch-model

关于mysql - 尝试插入时 Rails 找不到用户记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30564466/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com