你好我正在学习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
答案 0 :(得分:50)
您只运行一次rake db:create
,然后再运行它。然后,每次添加/更改迁移时都会运行rake db:migrate
。您已经运行了此迁移,或者您指向的是已存在且已包含名为users
的表的数据库。我的猜测是你已经进行了一次迁移,在这种情况下你很可能会去。如果您想要修改数据库并重新开始,请执行rake db:drop db:create db:migrate
。
答案 1 :(得分:17)
我们可以简单地说,它将完成数据库创建和迁移所需的所有rake任务
<强> rake db:setup
强>
答案 2 :(得分:1)