所有表格字段均未显示? (Rails / MySQL)

时间:2018-06-22 05:06:46

标签: ruby-on-rails database migration ruby-on-rails-5 rails-models

我在模型生成的迁移文件中创建了新字段“ first_name”,“ last_name”,“ email”和“ password”,如下所示:

class CreateUsers < ActiveRecord::Migration[5.2]

   def up
     create_table :users do |t|
        #added fields
        t.string "first_name", :limit => 25
        t.string "last_name", :limit => 50
        t.string "email", :default => '', :null => false
        t.string "password", :limit => 40

        t.timestamps
   end
  end

  def down
    drop_table :users
  end

end

但是,一旦我显示了字段,在这种情况下就是“用户”

mysql> SHOW FIELDS FROM users;

它应该returns this table,但它也应该返回first_name,last_name,email和密码。

此外,schema.rb文件还排除了这些。

我不知道为什么它没有实现这些领域。我对Rails还是很陌生,并且感谢有关标题编辑的建议,以更好地适应我的情况,因为我不确定术语是否正确。谢谢!

2 个答案:

答案 0 :(得分:0)

您一定错过了运行迁移的过程。

从项目的根目录运行此cmd

bundle exec rails db:migrate # for rails 5

bundle exec rake db:migrate

答案 1 :(得分:0)

从共享的描述中看来,首先您已迁移了没有该列的表,然后您必须在迁移文件中添加了这些列。

因此,当您将表迁移到数据库时,这些列在迁移文件中不存在,因此您需要按照以下提到的过程来克服这种情况:

1)使用

检查迁移状态
e

create_users迁移必须具有版本号

2)现在使用以下命令进行向下迁移:

rake db:migrate:status

3)重复步骤1,结果应该是create_users迁移现在已停止。

4)现在使用

rake db:migrate:down VERSION="version_number_of_the_create_users_migration"

5)现在检查schema.rb,它应该具有这些字段。