ruby-on-rails - Rake 中止...表 'users' 已存在

标签 ruby-on-rails ruby database

我用 devise 和漂亮的生成器创建了一个数据库。我正在尝试使用漂亮的生成器 (rails g nifty:scaffold Asset user_id:integer) 创建一个新数据库,但是当我尝试迁移数据库时 (rake db:migrate),我收到以下错误:

charlotte-dator:showwwdown holgersindbaek$ rake db:migrate
==  DeviseCreateUsers: migrating ==============================================
-- create_table(:users)
rake aborted!
An error has occurred, all later migrations canceled:

Mysql2::Error: Table 'users' already exists: CREATE TABLE `users` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `email` varchar(255) DEFAULT '' NOT NULL, `encrypted_password` varchar(128) DEFAULT '' NOT NULL, `reset_password_token` varchar(255), `reset_password_sent_at` datetime, `remember_created_at` datetime, `sign_in_count` int(11) DEFAULT 0, `current_sign_in_at` datetime, `last_sign_in_at` datetime, `current_sign_in_ip` varchar(255), `last_sign_in_ip` varchar(255), `name` varchar(255), `created_at` datetime, `updated_at` datetime) ENGINE=InnoDB

Tasks: TOP => db:migrate
(See full trace by running task with --trace)

我正在学习教程,但很难理解为什么会发生这种情况。谁能解释一下这是怎么回事?

最佳答案

在您的 create_users 迁移 (APP_ROOT/db/migrate/..) 中,在 create_table :users 之前添加 drop_table :users 并运行 rake 数据库:迁移。它会在重新创建之前删除用户表。您可以在运行此迁移后删除该行代码,以免以后出现错误。如果您没有对数据库的 UI 访问权限(例如,在 heroku 上),只需一个小修复。

关于ruby-on-rails - Rake 中止...表 'users' 已存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7874330/

相关文章:

ruby - 在 ruby​​ 中获取字符串扫描结果的索引

php - 在mysql数据库中存储排名

php - 无法登录到所需位置

sql - 简单的库存 SQL 查询未列出所有产品 MS-ACCESS

ruby-on-rails - 如何使用 PayPal(自适应支付?)向商家请求和发送付款

ruby-on-rails - 随机 rails 部分比预期慢 100 倍

ruby - 从使用示例中实现一个类

c# - 为什么这个算法在 Ruby 中比在 Parallel'd C# 中运行得更快?

ruby-on-rails - FactoryGirl 与多个模型的复杂关联

ruby-on-rails - Rails http_basic_authenticate_with