表rails_project.users不存在:显示来自用户的完整字段

时间:2014-02-03 15:54:12

标签: ruby-on-rails devise

我一直在尝试将当前rails应用程序的db从sqlite移动到MYSQL。 我在database.yml文件中进行了更改。但是我曾多次运行rake:db create and migrate,但没有什么对我不起作用。

我最终在错误中声明“表'rails_project.users'不存在:显示来自users的完整字段。”

我的数据库名称是rails_project,我正在使用设备验证,其中表名是用户。

我对这个问题非常沮丧。

任何人都可以帮助我吗?

database.yml中:

development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: rails_project
  pool: 5
  username: root
  password: root
  host : localhost
  socket: /var/run/mysqld/mysqld.sock 
test:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: rails_project
  pool: 5
  username: root
  password: root
  host : localhost
  socket: /var/run/mysqld/mysqld.sock     
production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: rails_project
  pool: 5
  username: root
  password: root
  host : localhost
  socket: /var/run/mysqld/mysqld.sock 

迁移文件:

   class DeviseCreateUsers < ActiveRecord::Migration
    def change
      create_table(:users) do |t|
      ## Database authenticatable
      t.string :email,              :null => false, :default => ""
      t.string :encrypted_password, :null => false, :default => ""

1 个答案:

答案 0 :(得分:0)

这意味着您在定义其表之前尝试使用某些东西,在我的情况下,我尝试在factories.rb中使用一些代码:

 Assesment.new.questions ...

因此,当我在rake db:schema:load期间在travis上运行我的代码时,所有代码都被解释,并且在该部分中它得到了相同的错误,解决方案是:

  • 在定义表格之前避免使用模型

  • {}使用延迟语法换行,至少在FactoryGirl中使用

只是试着仔细阅读日志,看你的代码行是否触发了错误