【问题标题】:Rails Model / Migrate IssueRails 模型/迁移问题
【发布时间】:2015-07-31 00:47:43
【问题描述】:

我正在阅读《RailSpace》这本书,并且正在尝试学习 Rails。但是,我在这个特定问题上被困了 2 天。

我已经制作了一个用户模型,但是当我去迁移它时,我不断收到错误。这是我的代码。

class CreateUsers < ActiveRecord::Migration

  def self.up
    create_table :users do |t|
      t.column :screen_name, :string
     t.column :email, :string
     t.column :password, :string
    end
  end

  def self.down
   drop_table :users
  end
end

它一直在告诉我

rake aborted!
== 1 CreateUsers: migrating ===================================================
-- create_table(:users)
StandardError: An error has occurred, all later migrations canceled:

Mysql2::Error: Table 'users' already exists: CREATE TABLE `users` (`id` int(11) auto_increment PRIMARY KEY, `screen_name` varchar(255), `email` varchar(255), `password` varchar(255)) ENGINE=InnoDB/Users/coreyholmes/RubymineProjects/worklink/db/migrate/001_create_users.rb:4:in `up'
-e:1:in `<main>'
ActiveRecord::StatementInvalid: Mysql2::Error: Table 'users' already exists: CREATE TABLE `users` (`id` int(11) auto_increment PRIMARY KEY, `screen_name` varchar(255), `email` varchar(255), `password` varchar(255)) ENGINE=InnoDB
/Users/coreyholmes/RubymineProjects/worklink/db/migrate/001_create_users.rb:4:in `up'
-e:1:in `<main>'
Mysql2::Error: Table 'users' already exists
/Users/coreyholmes/RubymineProjects/worklink/db/migrate/001_create_users.rb:4:in `up'
-e:1:in `<main>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)

Process finished with exit code 1

我在这里做错了什么?一切?好想学Rails哈哈。

【问题讨论】:

  • 您是否有重复的迁移,也可能会创建users 表?你试过用rake db:droprake db:migrate完全重置你的数据库吗?

标签: mysql ruby-on-rails ruby dbmigrate


【解决方案1】:

正如错误所说,您正在尝试创建一个已经存在的表users。这是您唯一的迁移吗?如果没有,请确保您没有在之前的迁移中创建 users。此外,请检查您的 config/database.yml 文件以确保您的开发数据库名称正确。

如果这是您的第一次迁移,您可能正在使用已包含数据的数据库。假设它是一个开发数据库,​​您应该能够删除它,即销毁它,然后从头开始创建它。您可以删除数据库,重新创建它,然后运行迁移:

rake db:drop
rake db:create
rake db:migrate

【讨论】:

  • 谢谢!我一直在做 db:drop & db:migrate 但一直忘记做 db:create :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-01
  • 1970-01-01
  • 2015-08-30
  • 2015-08-03
  • 2016-10-13
  • 1970-01-01
相关资源
最近更新 更多