我用 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/