我已经用DEVISE和漂亮的生成器创建了一个数据库.我正在try 使用漂亮的生成器(rails g nifty:scaffold Asset user_id:integer)创建一个新数据库,但是当我try 迁移数据库(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)

我正在学习一个教程,很难理解为什么会发生这种情况.有人能解释一下这是怎么回事吗?

推荐答案

迁移正在try 创建数据库中已存在的表.

try 从数据库中删除用户表.您的迁移过程出现问题.您还应该将schema.rb版本与db/Migration/*.rb文件进行比较.

Clarification:

似乎很多用户不同意我的回答,要么是因为他们认为我的回答不准确,要么是因为他们不推荐.

搬走桌子总是 destruct 性的,我想每个人都明白这一点.

我应该提到add_column,因为该表是在另一个迁移文件中创建的.

Database相关问答推荐

Prisma - 将属性的类型设置为枚举数组

在 MongoDB 中模拟关系

db:schema:load vs db:migrate with capistrano

两个不同数据库中的两个表之间的连接有什么问题?

不同的数据库是否使用不同的名称引用?

我需要在这个 Django 模型中添加一个 db_index 吗?

Meteor 如何执行数据库迁移?

使用脚本语言动态数据库

如何通过 PHP 和 Linux 使用 pdo 连接到 mssql?

在 SQL Server 中,如何以类似于 Oracle 的SELECT FOR UPDATE WAIT的方式锁定单行?

MySQL 数据库中列名中的连字符

没有自动增量的sqlalchemy主键

什么是非关系数据库的例子?

如何使用 Hibernate 在不丢失数据的情况下更新数据库模式?

我应该将用户 ID 公开吗?

使用 C3P0 的 JDBC 连接池

如何以 SYS 身份在 Java 中连接到 Oracle?

如何在 SQL Server 中删除多个数据库

如何使用 group_concat 引用值

包含 8000 万条记录并添加索引的表需要超过 18 小时(或永远)!怎么办?