嗨,我现在正在学习rails,并且正在学习教程.说明是在我创建应用程序后编辑迁移文件,然后运行rake db:migrate,然后运行rake db:create.

我已将迁移文件编辑为:

class CreateUsers < ActiveRecord::Migration
  def change
    create_table :users do |t|
      t.string :username
      t.string :email
      t.string :encrypted_password
      t.string :salt
      t.timestamps
    end
  end
end

然后,当我运行‘rake db:Migrate’时,我收到一个错误

Mysql2::Error: Table 'users' already exists: CREATE TABLE `users` ...

在我运行"rake db:create"之后,我得到了这个

user_auth_development already exists
user_auth_test already exists

推荐答案

你跑rake db:create一次,而且只跑一次,而且你先跑一次.然后,您可以在每次添加/更改迁移时运行rake db:migrate.您要么已经运行了此迁移,要么指向了一个已经存在并且已经包含名为users的表的数据库.我的猜测是您已经运行过一次迁移,在这种情况下,您可能可以继续了.如果你想用核弹炸毁数据库然后重新开始,速度rake db:drop db:create db:migrate.

Database相关问答推荐

将数据拆分为月份(以Postgres为单位

DynamoDB 扫描 - 具有相同分区键的项目按顺序返回

Django Save 方法在try 向表中添加新记录时出错

存储具有公共链接但 ID 很长的用户文件是否安全?

如何在华为Appcube中创建和使用对象(模型)?

将一个表中的多个列连接到另一个表中的单个列

数据库中的每个表都应该有一个 SQLiteOpenHelper 吗?

Spring Boot:如何使用多个模式并在运行时动态 Select 使用哪一个

跨不同数据库创建视图

在 phpmyadmin 中导入时如何跳过重复记录

如何删除 SQLite 中具有多个 where 参数的行?

多语言数据库,默认回退

如果数据库已经提供缓存,为什么还要使用应用程序级缓存?

Select * 和 Select [列出每个列] 之间有区别吗

如果表不存在,如何使用 Derby Db 创建表

在mysql中 Select 不同的2列组合

设计数据库来保存不同的元数据信息

在具有所需 ForeignKey 引用的 Django (1.8) 应用程序之间移动模型

如何在数据库中表示树状 struct

美国城市和州的列表/数据库