我正在阅读《RailSpace》这本书,并正在尝试学习 Rails。然而,我在这个特定问题上被困了两天。
我已经创建了一个用户模型,但是当我去迁移它时,我不断收到错误。这是我的代码。
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
。这是您唯一的迁移吗?如果没有,请确保您没有在之前的迁移中创建用户
。另外,检查您的 config/database.yml 文件以确保您的开发数据库名称正确。
如果这是您的第一次迁移,您可能使用的数据库中已有数据。假设它是一个开发数据库,您应该能够删除它,即销毁它,并从头开始创建它。您可以删除数据库,重新创建数据库,然后使用以下命令运行迁移:
rake db:drop
rake db:create
rake db:migrate
关于mysql - Rails 模型/迁移问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31736407/