Rails 模型/迁移问题
Rails Model / Migrate Issue
我正在阅读这本书 "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哈哈
如错误所述,您正在尝试创建一个已存在的 table users
。这是您唯一的迁移吗?如果不是,请确保您没有在之前的迁移中创建 users
。另外,检查你的 config/database.yml 文件以确保你的开发数据库名称是正确的。
如果这是您的第一次迁移,您可能使用的数据库中已有数据。假设它是一个开发数据库,您应该能够删除它,即销毁它,然后从头开始创建它。您可以删除数据库,重新创建它,然后 运行 迁移:
rake db:drop
rake db:create
rake db:migrate
我正在阅读这本书 "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哈哈
如错误所述,您正在尝试创建一个已存在的 table users
。这是您唯一的迁移吗?如果不是,请确保您没有在之前的迁移中创建 users
。另外,检查你的 config/database.yml 文件以确保你的开发数据库名称是正确的。
如果这是您的第一次迁移,您可能使用的数据库中已有数据。假设它是一个开发数据库,您应该能够删除它,即销毁它,然后从头开始创建它。您可以删除数据库,重新创建它,然后 运行 迁移:
rake db:drop
rake db:create
rake db:migrate