【问题标题】:Adding devise gem to a Rails 4 / mysql project (table users already exists)将设计 gem 添加到 Rails 4 / mysql 项目(表用户已经存在)
【发布时间】:2013-12-18 19:31:03
【问题描述】:

我是 Ruby、Rails、Rake、MySQL(在 Ubuntu/bash/命令行上)和 devise(warden 1.2.3,devise 3.0.4)的新手。我必须继续到目前为止所做的事情:Rails 4 项目正在运行并链接到 MySQL 数据库(完整,填充了用户和数据)。我能够更改控制器和视图。

我必须在项目中添加设计。我正在读这个:https://github.com/plataformatec/devise。我的班级名称是 User。所以我做了rails generate devise User

当我执行rake db:migrate 时,我有这个错误:Mysql2::Error: Table 'users' already exists: ... 当然,因为我的项目中已经有一个 users 表。

无论我读到什么 (Devise with Rails 4),它总是关于创建用户模型,而不是如何将设计插入预先存在的用户模型

我应该阅读什么文件?我必须编辑哪个文件来告诉设计“这是我的用户模型和表:”?

【问题讨论】:

    标签: devise ruby-on-rails-4 rake


    【解决方案1】:

    如果 Ruby/Rails 对您来说是全新的,而您迷路了……(就像我一样……)。

    • 在“/yourproject/db/migrate/”中查找迁移文件migration-name.rb)。此文件由rails generate devise User 生成(User 可以由 any 模型生成,例如 UserAdminClient ... )。该文件告诉您 Devise 将对数据库进行的修改(它需要什么)。

    • 仔细查看此文件并确保您的数据库符合要求。如果您运行rake db:migrate,rake 将尝试修改您的数据库。也许这是您的错误(尝试创建表用户,因为您的表用户已经创建)。

    • 修改您的迁移文件。您也可以手动更改数据库并删除迁移文件(如果您不想跟踪迁移);当然,在最后一种情况下,您不必运行 rake 命令。

    【讨论】:

      【解决方案2】:

      按照设计getting-started guide,并智能在必要时将手动步骤应用于您当前的项目。

      https://github.com/plataformatec/devise#getting-started

      【讨论】:

      • 将设计添加到您的模型,而不是创建一个新模型。我的猜测是您创建了一个新模型,但您没有删除旧迁移。
      猜你喜欢
      • 1970-01-01
      • 2015-04-05
      • 2020-03-05
      • 2011-10-15
      • 2017-12-23
      • 2019-04-21
      • 1970-01-01
      • 2017-12-17
      • 1970-01-01
      相关资源
      最近更新 更多